従来のASPサイト用のVB6バックエンドがあります。そのVBは、MSXML2.XMLHTTPを使用して同じサーバー上のWebサービスを呼び出します。これは私たちのすべてのサーバーで動作します。匿名ログインを受け入れるようにWebサービスサイトを設定すると、統合セキュリティだけを強制するとMSXMLがアクセス拒否エラーを返します。MSXMLを使用してアクセスが拒否されました
私は例here.
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.loadXML XmlBody
' Open the webservice
objXmlHttp.Open "POST", AsmxUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl
' Send XML command
objXmlHttp.send objDom.xml
編集からのコードを使用しています:AnthonyWJonesのアドバイスに従い 私はチェックリストを下って行き、それはまだ動作していません。 Fiddlerを使用すると、401応答の単一の要求が表示されます。 [認証]タブには、次の情報が表示されます。
No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM
私は奇妙な動作に気づきました。リモートデスクトップにログインしているユーザーの資格情報を使用してWebサイトに電話すると、それが動作します。私は交渉し、挑戦し、200を得て、それはうまくいくでしょう。ユーザーがリモートデスクトップ経由でログオンしていて、それ以外の時間にログオンしていない場合、これがなぜ機能するのか、
壊れたクライアントはどのOSで動作していますか? ターゲットサーバのホスト名は「プレーン」ですか(ドットは含まれていますか?)。そうでない場合、イントラネットゾーンへの割り当てはプロキシスクリプト(http://msdn.microsoft.com/en-us/library/bb250483(VS.85).aspx)を介して行われ、クライアントアプリケーションが何らかの理由でプロキシを使用していないと、ゾーン割り当てが失敗し、このような動作が発生します。 – EricLaw
Windows Server 2003 R2は私が使用しているOSです。ターゲットサーバのホスト名はプレーンで、ドットは含まれていません。ブラウザを使用してWebサービスに移動すると、ローカルイントラネットゾーンとして表示されます。インターネットオプション - >接続 - > LAN設定で、3つのボックスのどれもチェックされていません。おそらく、そのユーザーのためにエクスプローラが読み込まれていないときに、別の設定を使用しようとしていますか? – Ryan