2016-09-21 15 views
0

ASP.NET CoreおよびCookieAuthenticationミドルウェアを使用するユーザーに対して複数の同時セッションを防止しようとしています。同時ユーザーセッションの防止ASP.NETコア

これを行う方法に関するヒントを教えてください。

ユーザーがサインインすると、アプリはそのユーザーに対して発行された既存のすべてのCookieを無効にし、効果的に「サインアウト」することが理想的です。その後、古いセッションは、サーバーとの次回の対話時にサインインページにリダイレクトされます。これまでのところ、私はこれを行う方法を見つけていません。

私はdocumentationで説明されているようにカスタムバリデーターを使用する方法を見つけようとしています。

ありがとうございます!

答えて

0

これは私が(ASP.NET Coreを使用してこれを処理した方法ですが、これは無関係です):これを行うには、サーバーにアクセス可能などこかの状態を維持する必要があります。ユーザーがログインするとセッションIDをデータベースに保存できます。各Webアプリケーションクライアントは、ハートビートURL(数分ごとなど)に達するはずです。ハートビートのバックエンドは、データベース内のセッションIDをチェックします。それがユーザーにとってアクティブなものであれば、すべてが良好です。それ以外の場合はクッキーをクリアします。クライアント(websocket)への永続的な接続を使用している場合、セッションがもはや有効でないことを示すメッセージをクライアントに送ることができます。

新しいセッションが開始されたら、他のセッションで他の操作を実行できないようにする必要がある場合は、すべての呼び出しでセッションを確認する必要があります。 ASP.NET Coreのミドルウェア機能はこれに最適です。

+0

これは意味があります。私は、クッキー認証でそれを行うための "組み込み"の方法が増えることを期待していましたが、ミドルウェアを使用するとうまく動作します。 –

関連する問題