バックグラウンド:
ASP.NetMVCWebサイト。IIS7、イントラネットでホストされます。
データベース:SQLServer。NHibernate経由でアクセス。
接続文字列では、アクセスはに設定されていIntegrated Security: SSPI
ます。
(DBへのアクセス許可はActive-Directoryベースです。)
つまり、これは典型的なダブルホップの状況で
あり、クライアントの資格情報をIISに渡し、IISからSQLServerに渡す必要があります。
問題:
問題は、エラーのある死の黄色い画面です。
Login failed for user 'MyDomain\UserThatRunsAppPool'.
問題を解決するために私がやろうとしたこと:
- Windows認証
とASP.NET偽装のみを有効にするように認証を構成する - Windows認証
Provider
をNegotiate:Kerberos
(カーネルモード認証を無効にした後)に設定する - ActiveDirectoryでUserThatRunsAppPoolの委任が次のように設定されていることを確認します
。Trust the user for delegation to any service (Kerberos only)
- NHibernateSessionFactoryの作成をから
Application_BeginRequest()
に移動Session_Start()
問題を解決する試みでどれほど成功したか:
全くない。
編集:
IISサーバーの委任を' Trust the user for delegation to any service (Kerberos only)
'(Active Directory内)に設定しようとしました。