マシンでホストIIS 6.0
されている Web アプリケーション (ASP.net 4.0 で開発) があります。この Web アプリケーションではオンになっています。Windows Server 2003 R2
Integrated Windows Authentication
マシンIIS 7.5
上で Web サービス (WCF を使用して開発) をホストしました。Windows Server 2008 R2
'Windows Authentication
この Web アプリケーションでも有効になっています。
- Windows ドメイン アカウントを使用してローカル マシンにログオンします。Web アプリケーションを参照すると、ドメインのユーザー名とパスワードを尋ねられます。Web アプリでは、ID を正しく取得します。
- 私のマシンから (他の Winform アプリを使用して)、同じ Web アプリケーション (Web サービスの) を呼び出すと、サービス コードは私の Windows ID で実行されます。
そのIntegrated Windows Authentication
ため、異なるマシン上の別々の IIS でホストされている両方の Web アプリに対して独立して正常に動作します。
Web アプリケーションがローカル マシンから参照され、Web ページがサービスを内部的に呼び出すときに問題が発生します。この場合、予想どおり「サービスが自分の Windows ID で実行されません」と表示されます。これは、asp.net Web アプリまたは Web サービスの Web アプリのいずれかのアプリケーション プールの ID で実行されます。
Web サービスにユーザー認証の責任を負わせたくありません。simple を使用しますbasicHttpBinding
。CurrentPrincipal
またはなどを使用してユーザーの名前を読み取るHttpContext
だけです。ユーザーの身元の検証は、IIS のみで行う必要があります。
ある IIS から別の IIS に Windows ID を渡すのを手伝ってくれる人はいますか?