最近の sharepoint プロジェクトで、NTLM 認証ダイアログ ボックスを置き換える認証 Web パーツを実装しました。ユーザーが有効な資格情報を提供する限り、正常に機能します。ユーザーが無効な資格情報を提供するたびに、NTLM ダイアログ ボックスが Internet Explorer に表示されます。
XmlHttpRequest を介して認証を行う私の Javascript コードは次のようになります。
function Login() {
var request = GetRequest(); // retrieves XmlHttpRequest
request.onreadystatechange = function() {
if (this.status == 401) { // unauthorized request -> invalid credentials
// do something to suppress NTLM dialog box...
// already tried location.reload(); and window.location = <url to authentication form>;
}
}
request.open("GET", "http://myServer", false, "domain\\username", "password");
request.send(null);
}
ユーザーが無効な資格情報を提供したときに NTLM ダイアログ ボックスを表示したくありません。代わりに、認証フォームのログイン ボタンによるポストバックを実行する必要があります。言い換えれば、ブラウザは私の無許可のリクエストを見つけるべきではありません.
Javascriptを介してこれを行う方法はありますか?