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)
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |