문제

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();
    }
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top