非常に基本的なものが欠けているに違いありません。これがシナリオです
次の設定の ASP.NET 2.0 WebService (Server 2003) があります。
- SSL
- 統合されたセキュリティ
- アノム。アクセス無効
- NETWORK SERVICE で実行中
- 公開 (つまり、公共のインターネットからアクセスできる)
- サービスは、アプリケーションのユーザー名/パスワードを使用してデータベースからデータを返し、別の Web サービスを呼び出しません
- 私もそれを切り替えようとしましたが、サービスに偽装は設定されていません。
LAN から切断されているが、エア カードを使用しているクライアント マシン (同じドメイン) があります。ユーザーは、AD ユーザー名/パスワード/ドメインを使用してラップトップにサインインします。
プロキシ レベルのコードでは、service.PreAuthenticate
= true を使用しています。また、 と の両方DefaultCredentials
を使用DefaultNetworkCredentials
して同じ結果を試しました。
- .NET Windows クライアントは VPN で動作します
- .NET Windows クライアントが 401: Unauthorized WITHOUT VPN を取得します (注: 内部例外は返されません)
- IE は VPN の有無にかかわらず動作します。
私の仮定 (間違っている可能性があります) は、DefaultNetworkCredentials をプロキシ クラスに渡すと、認証のためにドメイン資格情報が渡されるというものでした。IE は明らかに、これを機能させるためにいくつかの魔法を行っています。
私は何が欠けていますか?