web-dev-qa-db-ja.com

要求のASP.NETフォーム認証が失敗しました。理由:提供されたチケットの有効期限が切れています

イベントログでこのエラーが何度も発生し、ユーザーがログアウトされます。

イベントコード:4005
イベントメッセージ:要求に対するフォーム認証が失敗しました。理由:提供されたチケットの有効期限が切れています。
イベント時間:3/10/2011 3:35:22 PM
イベント時間(UTC):3/10/2011 8:35:22 PM
イベントID:fc2f70cc85014b0ca7dbb01471617b66
イベントシーケンス:3392
イベント発生:1
イベント詳細コード:50202

考え:

  • Webフォームを使用していません。
  • アプリプールがリサイクルしているとは思わない。
  • いくつかのイベントでプロセスIDを比較しましたが、同じです。
  • 私のマシンキーはAutoGenerateではありません。
22
Amr

スコットがここで言及したように http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-on-windows-update.aspx Windows .netフレームワークのセキュリティ更新プログラムをインストールすると、この問題が発生します。 web.configファイルの構成セクションを変更し、別のCookie名に切り替えるだけです。

7
zhouruifu

フォーム認証チケットの有効期限が切れるとエラーが発生するようです。チケットのタイムアウト期間はどのくらいですか?スライディングまたは絶対有効期限に設定されていますか?

タイムアウトのデフォルトは20分で、有効期限がスライドするので、ユーザーが認証され、ある時点で20分間サイトにヒットしない場合、チケットは期限切れになります。絶対有効期限に設定されている場合は、発行後X分で有効期限が切れます。Xはタイムアウト設定です。

web/machine.configの下の/configuration/system.web/authentication/formsでタイムアウトと有効期限のポリシー(たとえば、スライド、絶対)を設定できます。

7
Dustin Hodges

Microsoftの優れた記事 http://www.iis.net/learn/troubleshoot/security-issues/troubleshooting-forms-authentication は、さまざまなケースとシナリオをカバーしています。

4

別のマシンからweb.configを使用した後、同じ問題が発生しました。問題は、無効なMachineKeyに関連していました。問題を解決するために、サーバーの正しいMachineKeyを使用するようにweb.configを変更しました。

この MSDNブログ投稿 は、MachineKeyの生成方法を示しています。

2
Zanon