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

HCL*_*HCL 15 asp.net asp.net-mvc-5 asp.net-identity

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

Guid.NewGuid().ToString("D")
Run Code Online (Sandbox Code Playgroud)

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

HCL*_*HCL 23

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

IdentityUser.SecurityStamp属性

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

Guid.NewGuid().ToString("D")
Run Code Online (Sandbox Code Playgroud)


Sho*_*eel 10

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

UserManager.UpdateSecurityStampAsync(userId);
Run Code Online (Sandbox Code Playgroud)


Dem*_*tic 7

聚会有点晚了,但这些似乎效果很好:

        await _userManager.UpdateSecurityStampAsync(user);
        await _userManager.UpdateNormalizedEmailAsync(user);
        await _userManager.UpdateNormalizedUserNameAsync(user);
        await _userManager.SetLockoutEnabledAsync(user, true);
Run Code Online (Sandbox Code Playgroud)