1

私は、VS 2012 / MVC 4 / .NET 4.5 に同梱されている (比較的) 新しい Web API に取り組んでおり、認証を処理するカスタム メッセージ ハンドラーを実行しています。また、それを古い .NET 2.0 メンバーシップ プロバイダーに接続することもできました。

私は現在、HTTP 要求ヘッダーでトークンを使用して、「すべての HTTP 要求で認証する」問題に取り組んでいます。

現在、モバイルアプリの場合、ユーザーがアプリを開いたときに初めてログイン画面を表示し、何らかの理由で「Unauthorized」メッセージが返されない限り、再度表示しません。しかし、私の Web ブラウザー ベースのプロジェクトでは、一度ログインすると、ブラウザーは (開いている限り) 認証されたままになります。

この種の認証でタイムアウトを強制する最良の方法は何ですか? 誰かがこれを行った場合、非アクティブに基づいてログアウトしたいと思います。これは私を少し困惑させているので、どんなガイダンスも大歓迎です:-)

ありがとう!

4

1 に答える 1

0

考慮する必要があるアイドル タイムアウトが 2 つあります。

  1. 参照したトークンに期限切れになるサーバー側のアイドル タイムアウト
  2. ユーザーに資格情報の再入力を指示するクライアント側 (モバイル アプリ) のアイドル タイムアウト

#1については、どのトークンがアクティブであるか、いつ期限切れになるかなどを追跡する必要があります...これを行うには複数の方法があります。どのように実装することをお勧めするかは、IIS と Azure のどちらにデプロイするか、およびスケールアウトするかによって異なります。一般的には、この情報が保存される中央の場所が必要です。DB は機能しますが、比較的低速です。セッション状態は App Fabric を介してサーバー間で共有できるため、Azure で機能する可能性がありますが、IIS では、追加のコンポーネントを使用してサーバー間でセッション状態を共有する必要があります。.NET で HttpRuntimeCache を使用する場合も同様です。

また、このようなチェックをサーバー側で行うことは、最終的にどのように実装するかによって、参照するトークンを誰かがハイジャックするのを防ぐために重要であることに注意してください。

#2 については、iOS アプリで行ったことは、アイドル タイムアウトを追跡することでした。ユーザーがアプリで何らかの入力 (BeginTouch イベントなど) を行うたびに、アイドル タイマーを停止して再起動します。タイマーは、タイマーが起動した場合にユーザーをログイン画面に移動するように構成されています。これと同じ種類のことが、Android、WP7 などでうまく機能するはずです。

于 2012-10-16T16:17:49.050 に答える