2009-04-14 6 views
2

私は単一のサーバー(Windows 2003/IIS 6)を持っています。このサーバーには、IISにいくつかの異なる「Webサイト」設定があります。各サイトは、IISで個別のホストヘッダー(ポート80)を使用して構成されています。また、各サイトには、指定したポート番号(ホストヘッダーなし)でアクセスすることもできます。例えば401 ASP.NET WebアプリケーションからASP.NET Webサービスに連絡する際に無許可

MySite1: http://apps.mysite1.com または http://myserver:xxxx

MySite2: http://something.mysite2.com または http://myserver:yyyy

私は私のhostsファイルを編集した(それは開発マシンだ)にリダイレクトします各サイトのホストヘッダーをローカルマシン(127.0.0.1)に転送します。

私は、1つのIISサイト(mysite1)にASP.NET 2.0 Webサイトを持ち、別のIISサイト(mysite2)にASP.NET 2.0 Webサービスを持っています。すべてのサイトは、Windows統合セキュリティとASP.NET用に設定されている

MyWebService svc = new MyWebService(); 
//also have tried "http://myserver:yyyy/MyWebService.asmx" below 
svc.Url = "http://something.mysite2.com/MyWebService.asmx"; 
svc.Credentials = System.Net.CredentialCache.DefaultCredentials; 
svc.MyMethod(); 

は=「true」を/ > <身元偽装とWindows認証用に設定されています。ウェブサイトには、次のようなコードを使用してWebサービスと通信します。セキュリティモデルでは、Webアプリケーションにログインしたユーザーは、Webサービスのすべての段階で認証されている必要があります(基本的なデータベースにダウンしますが、必ずしもここでは関係ありません)。

私はこのWebサービス(新しいメソッド)を再構築しましたが、今度は401 Unauthorizedメッセージで終了するWebサービス呼び出しの結果が機能しません。

ダブルホップのように聞こえます。私は、それが渡される資格情報を受け入れず、新しいものが渡されることに挑戦しないというWebサービスと関係があると信じています。これを確認する方法がわからないだけです。なぜそれが挑戦するかわからない - 私はマシン/ドメインの管理者としてログインしていて、インターネットオプション>セキュリティタブ>カスタムレベル>イントラネットゾーンの自動ログオンで資格情報を渡すようにIEが設定されている。はい、関連するサイトが私の「イントラネットゾーン」に追加されます。

これをトラブルシューティングする最良の方法は何ですか?これを引き起こしている可能性のあるアイデアは何ですか?

TIA!

答えて

1

double-hop issueのようになります。ダブルホップの問題であることを確認するために、私はsvc.Credentials =と読んで、明示的にテストする資格を入れて、それが動作するかどうかを調べる行を変更します。それがうまくいけば、それはダブルホップの問題です、あなたはそれを解決する必要があります。

+0

ええ、これも私が疑うところです。私は自分の疑問を解決する方法を知らない。 – Brian

+0

このkbの記事では、Kerberos Delegationについて説明します。委任によって、2番目のIISが最初に信頼することができます。接続にUser credsを使用している場合は、DBサーバーでこれを行う必要があります。 http://support.microsoft.com/kb/810572 – dar

関連する問題