私のMVC-5アプリケーションでは、手動でセキュリティスタンプ値を作成する必要があります。アイデンティティチームの現在の実装では、GUIDが使用されているようです。
Guid.NewGuid().ToString("D")
新しいセキュリティスタンプ値として使用する新しいGuidを自分で作成しても安全ですか、それともasp.net IDの将来の実装で問題が発生しますか?
将来の変更に対して実装が安全になるように、アイデンティティフレームワークにそのようなスタンプ値を作成させる方法はありますか?
エンティティフレームワークのID実装のドキュメントでは、ランダムな値である可能性があるようです。
IdentityUser.SecurityStampプロパティ
したがって、GUIDは問題ないようであり、次のコードはasp.net IDの将来のバージョンでも信頼できるはずです。
Guid.NewGuid().ToString("D")
ASP.NET Identity UserManager
は、ユーザーのセキュリティスタンプを自動的に更新するメソッドUpdateSecurityStampAsync(string userId)
を提供します。したがって、次回validateInterval
が終了すると、ユーザーは自動的にログアウトされ、再度サインインする必要があります。
UserManager.UpdateSecurityStampAsync(userId);
パーティーには少し遅れますが、これらはうまく機能するようです:
await _userManager.UpdateSecurityStampAsync(user);
await _userManager.UpdateNormalizedEmailAsync(user);
await _userManager.UpdateNormalizedUserNameAsync(user);
await _userManager.SetLockoutEnabledAsync(user, true);