ASP.NET ID 2.1 알파 SignInManager.getVerifiedUserIdAsync 잘못된 캐스트
-
21-12-2019 - |
문제
ASP.NET MVC 5를 사용하고 있습니다. ASP.NET ID 2.1 Project에서 Alpha.
ID의 경우 ID GUID로 키를 사용하도록 사용자 관리자를 구현했습니다.
두 가지 요소 인증을 구현하고 있습니다.사용자 ID를 얻으려고 할 때
var userId = await SignInManager.GetVerifiedUserIdAsync();
.
i 오류가 발생합니다
Invalid cast from 'System.String' to 'System.Guid'.
.
ID 알파 릴리스가있는 버그입니까 아니면 뭔가 빠졌습니까?하나의 요소 인증을 사용하면 모두 좋은 것입니다.사용자가 데이터베이스로 만들어졌습니다.
사용자 데이터를 변경할 수 있습니다.어떤 제안이 감사하겠습니다.고맙습니다.
해결책
나는 그 솔루션을 발견했다.SignInManager의 정의를보고 나는 두 가지 방법을 발견
public virtual TKey ConvertIdFromString(string id);
public virtual string ConvertIdToString(TKey id);
.
SignInManager의 구현 에서이 두 가지 방법을 재정의하고 모든 것이 효과가있었습니다.
public override Guid ConvertIdFromString(string id)
{
if (string.IsNullOrEmpty(id)) return Guid.Empty;
return new Guid(id);
}
public override string ConvertIdToString(Guid id)
{
if (id.Equals(Guid.Empty)) return string.Empty;
return id.ToString();
}
. 제휴하지 않습니다 StackOverflow