如何为 asp.net 身份创建安全戳值 (IUserSecurityStampStore)

How to create a security stamp value for asp.net identity (IUserSecurityStampStore)

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

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

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

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

IdentityUser.SecurityStamp Property

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

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

ASP.NET 身份 UserManager 提供方法 UpdateSecurityStampAsync(string userId) 将自动更新用户安全标记。这样下次 validateInterval 结束时,用户将自动注销并强制再次 sign.in。

UserManager.UpdateSecurityStampAsync(userId);

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

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