一般情報
オペレーティング システム: Windows Server 2003 R2 サービス パック 2
ウェブサーバー: IIS 6
NTAuthenticationProviders : NTLM のみ
Web アプリケーション: クラシック ASP
使用ブラウザ:IE7、IE8、IE9
eblcplaza / knowledgebase / .
eblcplaza には匿名アクセスがあり、統合 Windows 認証が有効になっています。ナレッジベースでは、匿名アクセスが無効になっており、統合 Windows 認証が有効になっています
ナレッジベースは、事前定義されたアプリケーション プール ID「ネットワーク サービス」の下で実行される独自のアプリケーション プールを持つクラシック ASP アプリケーションです。</p>
NT アカウントでログインすると、必要なページに問題なくアクセスできます。問題は WinHttp.WinHttpRequest.5.1 コンポーネントにあります。Web アプリケーション内に存在するいくつかの .asp スクリプトからコンテンツを取得するためのサーバー側要求を実行するために、ナレッジベースの一部で使用されます。
問題は、ナレッジベースで匿名アクセスがオフになったときに始まりました。 注、オンに戻すことはオプションではありません。
WinHttpRequest を使用したリクエストの例:
set WinHTTPRequest = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
WinHTTPRequest.SetTimeouts 20000, 20000, 20000, 20000
call WinHTTPRequest.Open("POST", someUrlToAspScript, false)
WinHTTPRequest.SetAutoLogonPolicy 0
WinHTTPRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
WinHTTPRequest.Send strQueryString
Response.Write(WinHTTPRequest.ResponseText)
SetAutoLoginPolicy を 0 に設定すると、WinHttpRequest が使用されているページで次のエラー メッセージが表示されます。
指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。HTTP エラー 401.1 - 権限がありません: 資格情報が無効なため、アクセスが拒否されました。インターネット インフォメーション サービス (IIS)
SetAutoLoginPolicy を 2 (MSDN に従ってユーザー資格情報を自動的に送信しない) に設定すると、WinHttpRequest が使用されているページで次のエラー メッセージが表示されます。
Web サーバーが受け入れるように構成されていない WWW-Authenticate ヘッダー フィールドを Web ブラウザーが送信しているため、指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。HTTP エラー 401.2 - 権限がありません: サーバーの構成が原因でアクセスが拒否されました。
私の NT ユーザー アカウントには、これらの .asp スクリプトにアクセスするための適切な権限があり、ネットワーク サービス アカウントにも同様の権限があることはわかっています。
NTAuthenticationProviders を NTLM のみに設定し、Negotiate と NTLM の両方に設定しようとしましたが、これまでのところ何も機能しませんでした。
私を助けてください、それは私を夢中にさせ始めています。
よろしく、
バート