私は、サーバーで許可されているさまざまな認証方式でXMLHttpRequest(firefox)を使用してMicrosoftサーバーにSOAPリクエストを作成しようとしています。Windows認証付きXMLHttpRequest SOAPリクエスト
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', url, true);
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");
xmlhttp.setRequestHeader("Connection", "keep-alive");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
}
}
xmlhttp.send(soapRequest);
この場合、すべて正常に動作します。このコードを実行すると、ユーザー名とパスワードの入力を求めるメッセージが表示され、資格情報を入力すると、サーバーから応答が得られます。これは、Basic認証、Digest認証、Windows認証で動作します。
しかし、私は今、これが唯一の基本とダイジェスト認証のためではなく、Windowsの認証(NTLM)の作品
xmlhttp.open('POST', url, true, username, password);
に二行目を変更してcredetntialsの入力を求め取得する必要はありません。私はこの認証方法を使うときには問題ない401の応答をサーバから得るでしょうが、それ以上の通信は起こりません。
また、 "network.automatic-ntlm-auth.trusted-uris"設定にドメインを追加しようとしましたが、それは役に立ちませんでした。
は、サーバーの完全な応答:それが判明
Cache-Control private
Content-Length 0
Date Fri, 07 Jul 2017 16:48:22 GMT
Server Microsoft-IIS/7.5
WWW-Authenticate Negotiate
NTLM
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET