web-dev-qa-db-ja.com

asp.net IDのセキュリティスタンプ値を作成する方法(IUserSecurityStampStore)

私のMVC-5アプリケーションでは、手動でセキュリティスタンプ値を作成する必要があります。アイデンティティチームの現在の実装では、GUIDが使用されているようです。

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

新しいセキュリティスタンプ値として使用する新しいGuidを自分で作成しても安全ですか、それともasp.net IDの将来の実装で問題が発生しますか?
将来の変更に対して実装が安全になるように、アイデンティティフレームワークにそのようなスタンプ値を作成させる方法はありますか?

16
HCL

エンティティフレームワークのID実装のドキュメントでは、ランダムな値である可能性があるようです。

IdentityUser.SecurityStampプロパティ

したがって、GUIDは問題ないようであり、次のコードはasp.net IDの将来のバージョンでも信頼できるはずです。

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

ASP.NET Identity UserManagerは、ユーザーのセキュリティスタンプを自動的に更新するメソッドUpdateSecurityStampAsync(string userId)を提供します。したがって、次回validateIntervalが終了すると、ユーザーは自動的にログアウトされ、再度サインインする必要があります。

UserManager.UpdateSecurityStampAsync(userId);
11
Shoaib Shakeel

パーティーには少し遅れますが、これらはうまく機能するようです:

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