2016-11-21 9 views
1

私が変更している(削除、追加または削除する、パスワードを変更するなど)ユーザーのアクティブセッションをすべてログアウトしようとしています。ASP.NETコアIDでユーザーをログアウトする方法

旧バージョンのASP .NETのソリューションが見つかりました。基本的にはUserManager.UpdateSecurityStampAsync(userId);を呼び出しますが、これはASP .NETコアでは動作しません。関数を呼び出すことはできますが、何もしません。その後もユーザーはログインしています。

ログインユーザー(すべての開いているセッション)はどうすればログアウトできますか?

答えて

1

IdentityOptionsというプロパティがあり、SecurityStampValidationIntervalと呼ばれ、Cookieの有効性の確認頻度を設定します。デフォルトでは30分に設定されています。あなたはそれを変更することができます:

services.Configure<IdentityOptions>(options => 
{ 
    options.SecurityStampValidationInterval = TimeSpan.FromSeconds(0);    
}); 
+0

ありがとう、それは完全に動作します。このような低い値を使用すると、パフォーマンス上の罰則はありますか?このプロパティを1ティックに設定すると、スタンプは実際に何時検証されますか? (私が推測する要求ごとに1回だけ)。 – FSMaxB

+0

@FSMaxBはいあります。ユーザーからのすべてのHTTP要求に対するデータベースへの追加要求。 – tmg

+0

本当にユーザーCookieを無効にする方法はありませんか?そのユーザーのCookieのデータ保護キーを変更することも、メモリ内のCookieを無効にすることもできません。 スタンプの検証間隔を設定することは回避策のように思えます。最初にこのスタイルのアイデンティティを持つという目的を破ってしまいます。 – Ryan

関連する問題