0

ユーザーが[戻る]ボタンをクリックしてから、表示するコンテンツではなく別のリンクを選択すると、ログイン画面が表示される場合があります。これは、アプリケーションが突然ユーザーが認証されていないと判断したようなものです。その後、ユーザーはブラウジングを続行するために再認証する必要があります。これは、ユーザーがアクティブにブラウジングしているときに発生するため、タイムアウトは発生せず、認証後にコンテンツが表示されます(したがって、認証の問題ではありません)。

残念ながら、この問題を再現することは非常に困難です。この問題を最も頻繁に経験しているユーザーは、IE7でWindowsXPを使用していますが、WindowsXPおよびIE8でも問題が発生しています。IE9またはChrome18を搭載したWindows7で問題を再現できないようですが、問題の再現が難しいため、問題がブラウザまたはブラウザのバージョンに依存しているとは言えません。

ASP.NET MVC 3アプリは、SQLServerデータベースに格納されている役割情報とActiveDirectoryのメンバーシップ情報を使用してフォーム認証を使用します。ホスティング環境は、Windows2008R2上のIIS7.5です。

他の誰かがこの問題を見て、回避策を知っていますか?

4

1 に答える 1

0

サーバーでは、リクエストごとにリクエストスレッドに再接続する必要があるカスタム IPrincipal を使用していると思いますか? HTTPModule または global.asax でこれを行っていますか? スレッドを承認するためにどのページ イベントにフックしていますか?

使用するイベントに応じて、さまざまなランタイム コンテキストで使用できる認証の違いに気付きました。私は常に OnAuthorizeRequest を使用し、application.Context.User != null であることを確認します。

しかし、あなたが説明している症状は、リクエストから断続的に認証 Cookie が欠落しているように聞こえます。

リクエストごとにデバッグ ログを追加し、Cookie と認証を監視して、その原因となっている条件を検出できるかどうかを確認します。

于 2012-05-16T11:24:31.440 に答える