イベントログでこのエラーが何度も発生し、ユーザーがログアウトされます。
イベントコード:4005
イベントメッセージ:要求に対するフォーム認証が失敗しました。理由:提供されたチケットの有効期限が切れています。
イベント時間:3/10/2011 3:35:22 PM
イベント時間(UTC):3/10/2011 8:35:22 PM
イベントID:fc2f70cc85014b0ca7dbb01471617b66
イベントシーケンス:3392
イベント発生:1
イベント詳細コード:50202
考え:
スコットがここで言及したように http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-on-windows-update.aspx Windows .netフレームワークのセキュリティ更新プログラムをインストールすると、この問題が発生します。 web.configファイルの構成セクションを変更し、別のCookie名に切り替えるだけです。
フォーム認証チケットの有効期限が切れるとエラーが発生するようです。チケットのタイムアウト期間はどのくらいですか?スライディングまたは絶対有効期限に設定されていますか?
タイムアウトのデフォルトは20分で、有効期限がスライドするので、ユーザーが認証され、ある時点で20分間サイトにヒットしない場合、チケットは期限切れになります。絶対有効期限に設定されている場合は、発行後X分で有効期限が切れます。Xはタイムアウト設定です。
web/machine.config
の下の/configuration/system.web/authentication/forms
でタイムアウトと有効期限のポリシー(たとえば、スライド、絶対)を設定できます。
Microsoftの優れた記事 http://www.iis.net/learn/troubleshoot/security-issues/troubleshooting-forms-authentication は、さまざまなケースとシナリオをカバーしています。
別のマシンからweb.configを使用した後、同じ問題が発生しました。問題は、無効なMachineKey
に関連していました。問題を解決するために、サーバーの正しいMachineKey
を使用するようにweb.configを変更しました。
この MSDNブログ投稿 は、MachineKeyの生成方法を示しています。