4

同じサーバー上に、GamesPlayLogin と GamesPlay という 2 つのアプリケーションがセットアップされています。【 Windows Server 2008 R2 】

そのため、ユーザーがログイン アプリケーション ( GamesPlayLogin) を使用して認証されると、

<authentication mode="Forms">
  <forms name="GamesLoginCheck" loginUrl="/GamesPlayLogin/Default.aspx"  
         timeout="240" path="/" slidingExpiration="true" />
</authentication>

アプリケーションにリダイレクトされます: GamesPlay. しかし、リダイレクトを行うと、認証は毎回失敗し、ユーザーは最初のアプリケーションである GamesPlayLogin にリダイレクトされます。

要件の決定に従って、2 つのアプリケーションは異なるアプリケーション プールで実行するようにセットアップされています。また、自動生成されたキーを使用しています。

また、IIS (バージョン 7.5) をチェックして、「アプリケーションごとに一意のキーを生成する」のボックスがオフになっていることを確認しました。

イベントログが示しています::

Event message: Forms authentication failed for the request
Reason: The ticket supplied was invalid

上記のイベント ログに関連する多くの解決策を確認しましたが、成功しませんでした。まず、私のアプリケーションは同じWEBサーバー上にあり、自動生成されたキーを使用した同じセットアップが以前に機能していました(Windowsサーバー2008、最近Windowsサーバー2008 R2に移行するまで)。

同じセットアップが以前 (Windows サーバー 2008) で機能した理由をまだ探していますが、最近 Windows 2008 R2 に移行した後ではありません。

4

1 に答える 1

2

IIS 7 と 7.5 の間には、アプリケーション プールの既定の ID がネットワーク サービスから自動生成された AppPool ID に変更されたという違いがありました。

また、2 つのアプリケーション プールは異なるユーザーで実行されていました。

autogenkey はユーザーごとに保存され、2 つのプロセスは異なるユーザーの下で実行されているため、異なる autogen key を持つことになります。

DEV 's Blog を調べてみると、最終的に非常に役立つことがわかりました。

最後に、要件を考慮して、アプリケーション プールの ID を各アプリケーション プールの同じユーザーに変更しました。

また、 Kev によるこのブログ投稿では、autogenkey がレジストリにどのように保存されているかについて説明しています。

于 2013-09-07T07:36:55.260 に答える