如何为asp.net标识创建安全戳记值(IUserSecurityStampStore)

时间:2015-03-30 15:28:33

标签: asp.net asp.net-mvc-5 asp.net-identity

在我的MVC-5应用程序中,我必须手动创建安全标记值。身份团队的当前实施似乎使用了一个guid。

Guid.NewGuid().ToString("D")

自己创建一个新的Guid以作为新的安全标记值使用是否安全,或者这会在将来的asp.net标识实现中导致问题?
有没有一种方法可以让身份框架为我创建这样的标记值,以便我的实现对于将来的更改是安全的?

3 个答案:

答案 0 :(得分:19)

在实体框架的身份实现文档中,似乎它可以是任意随机值:

IdentityUser.SecurityStamp Property

因此guid看起来很好,以下代码对于asp.net身份的未来版本也应该是可靠的。

Guid.NewGuid().ToString("D")

答案 1 :(得分:10)

ASP.NET标识UserManager提供方法UpdateSecurityStampAsync(string userId),它将自动更新用户安全标记。因此,下次validateInterval结束时,用户将自动注销并强制再次签名。

UserManager.UpdateSecurityStampAsync(userId);

答案 2 :(得分:0)

派对有点晚了,但这些似乎工作得很好:

        await _userManager.UpdateSecurityStampAsync(user);
        await _userManager.UpdateNormalizedEmailAsync(user);
        await _userManager.UpdateNormalizedUserNameAsync(user);
        await _userManager.SetLockoutEnabledAsync(user, true);