3

サーバーにさまざまなパッチが混在している場合に、Webfarm で認証チケットが無効とマークされる原因となった問題が、ある時点で追跡されたようです。

残念ながら、Web サーバーに同一のパッチが適用されている場合でも、まだ問題があるようです。

私の2つのサーバー:

  • 同一のパッチを持っている
  • 同じマシンキーを持っている

しかし、ユーザーがファーム内の 1 つの Web サーバーから別の Web サーバーに移行すると、基盤となる Microsoft コードがトークンを無効にします。イベント ログ エントリは次のとおりです。

Event code: 4005 
Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid. 
Event time: 4/10/2012 2:42:20 PM 
Event time (UTC): 4/10/2012 6:42:20 PM 
Event ID: 92eedee52ede49239fd063fe5609d858 
Event sequence: 2 
Event occurrence: 1 
Event detail code: 50201 

Application information: 
    Application domain: /LM/W3SVC/2000/ROOT-1-129785553216092727 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: C:\inetpub\wwwroot\testportal.mydomain.com\ 
    Machine name: WEB02 

Process information: 
    Process ID: 1428 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\testportal.mydomain.com 

Request information: 
    Request URL: http://testportal.mydomain.com/Interface.aspx 
    Request path: /Interface.aspx 
    User host address: ************* 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\testportal.mydomain.com 

Name to authenticate:  

Custom event details: 

これを理解するか、Microsoft の認証を自分のシステムから書き出す必要があります (これを行う時間がありません)。

両方のサーバーに同じように適用されたホットフィックスは次のとおりです。

Windows Server 2008 R2 x64 ベース

KB981391,KB981392,KB977236,KB981111,KB977238,KB977239,KB981390,KB2305420,KB2386667,KB2393802,KB2425227,KB2475792,KB2476490,KB2478662,KB2479628,KB2482017,KB2484033,KB2485376,KB2487426,KB2488113,KB2492386,KB2503665,KB2505438,KB2506014,KB2506212, KB2506928,KB2507618,KB2507938,KB2508272,KB2509553,KB2510531,KB2511250,KB2511455,KB2515325,KB2518869,KB2522422,KB2524375,KB2529073,KB2530548,KB2533552,KB2533623,KB2534366,KB2536275,KB2536276,KB2539635,KB2541014,KB2544521,KB2544893,KB2545698,KB2547666, KB2552343,KB2555917,KB2556532,KB2560656,KB2563227,KB2564958,KB2567680,KB2570947,KB2572077,KB2584146,KB2585542,KB2588516,KB2598845,KB2603229,KB2607047,KB2607576,KB2608658,KB2618444,KB2618451,KB2620704,KB2620712,KB2621440,KB2631813,KB2632503,KB2633873, KB2633952、KB2636573、KB2639308、KB2639417、KB2640148、KB2641653、KB2641690、KB2643719、KB2644615、KB2645640、KB2647516、KB2647518,KB2654428,KB2656356,KB2660075,KB2660465,KB2665364,KB2667402,KB958488,KB976902,KB976932,KB982018

要求ごとに、ここに私の web.config の認証セクションがあります。

    <authentication mode="Forms">
        <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" cookieless="AutoDetect" timeout="120" slidingExpiration="true">
        </forms>
    </authentication>
4

4 に答える 4

3

私は最終的にこの問題を解決したと思います。この変更によって問題が修正される理由は正確にはわかりませんが、解決するために私がしたことは、アプリケーションの web.config ファイルに直接 machineKey の定義を入れることでした。どうやら、IIS マネージャーを使用してマシン キーを適切に設定する方法を理解していないか、IIS マネージャーに問題があるようです。

この問題を解決するために、web.config に次のようなエントリを直接追加しました。

<machineKey validation="SHA1" validationKey="-a-validation-key-" decryption="Auto"  decryptionKey="-a-decryption-key-"/>

この記事のようなものは、この問題を解決するための正しい道に私を導きました:

ASP.NET 4 の重大な変更

于 2012-06-11T12:47:21.730 に答える
2

さて、私はあまりにも早く話しました。このプロセス全体で、サーバーから.NET Framework 4を削除しました。これは、.NET Framework 4を開発しておらず、認証の問題を引き起こすFW4についての言及があったためです。

この問題を「解決」した後、Framework 4をサーバーに戻し、Windows Updateを実行して、両方のサーバーに次のパッチを追加しました。

  • XP、Server 2003、Vista、Windows 7、Server 2008、Server 2008 R2 for x64(KB2600217)上のMicrosoft .NETFramework4の更新
  • Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2forx64ベースのシステムでのMicrosoft.NETFramework 4の更新プログラム(KB2533523)
  • Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2forx64ベースのシステムでのMicrosoft.NETFramework 4のセキュリティ更新プログラム(KB2487367)
  • Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2forx64ベースのシステムでのMicrosoft.NETFramework 4のセキュリティ更新プログラム(KB2518870)
  • XP、Server 2003、Vista、Windows 7、Server 2008、Server 2008 R2 for x64(KB2656351)上のMicrosoft .NETFramework4のセキュリティ更新プログラム
  • XP、Server 2003、Vista、Windows 7、Server 2008、Server 2008 R2 for x64(KB2572078)上のMicrosoft .NETFramework4のセキュリティ更新プログラム
  • XP、Server 2003、Vista、Windows 7、Server 2008、Server 2008 R2 for x64(KB2633870)上のMicrosoft .NETFramework4のセキュリティ更新プログラム
  • Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2forx64ベースのシステムでのMicrosoft.NETFramework 4の更新プログラム(KB2468871)
  • XP、Server 2003、Vista、Windows 7、Server 2008、Server 2008 R2 for x64(KB2656368)上のMicrosoft .NETFramework4のセキュリティ更新プログラム

これらの更新を行ったので、問題は再発しました。もう1つの興味深い点は、プロセス中のどこかで、これらの更新によって復号化キーが48バイトに切り刻まれたことです。それが既存のものを切り刻んだのか、それとも新しいものを作成したのかはわかりません。戻って、新しく生成されたマシンキーと復号化キーを配置しましたが、問題は解決しませんでした。

于 2012-04-16T15:25:55.240 に答える
1

asp.netのこの男の助けを借りて、問題を修正する方法を見つけました。

これを理解するのに役立ったasp.netのスレッド。

最終的に修正したのは、検証キーと復号化キーを再生成したことだと思います。これらのサーバーにロードされた修正プログラムと互換性のない古いキーについて何らかの問題があったに違いありません。

興味深いことに、古い検証キーと新しい検証キーはどちらも 128 バイトでしたが、古い復号化キーは 48 バイトで、新しいものは 64 バイトです。

于 2012-04-12T20:44:40.750 に答える