ASP.Net Identity 2.1 alpha SignInManager.GetVerifiedUserIdAsync无效的强制转换

The*_*eek 5 c# asp.net asp.net-mvc asp.net-identity

我在我的项目中使用ASP.Net MVC 5和ASP.Net Identity 2.1 alpha.

对于身份我已经实现了用户管理器以使用Guid作为密钥.

我正在实施双因素身份验证.当我尝试获取用户ID时

var userId = await SignInManager.GetVerifiedUserIdAsync();
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

Invalid cast from 'System.String' to 'System.Guid'.
Run Code Online (Sandbox Code Playgroud)

它是Identity alpha发布的错误还是我遗漏了什么?如果我使用单因素身份验证一切都很好.用户在数据库中创建,您可以更改用户数据等.

任何建议将不胜感激.谢谢.

The*_*eek 10

我找到了解决方案.看一下SignInManager的定义,我注意到了两种方法

public virtual TKey ConvertIdFromString(string id);
public virtual string ConvertIdToString(TKey id);
Run Code Online (Sandbox Code Playgroud)

所以我只是在我的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();
    }
Run Code Online (Sandbox Code Playgroud)