在最近的一个 sharepoint 项目中,我实现了一个身份验证 webpart,它应该替换 NTLM 身份验证对话框。只要用户提供有效的凭据,它就可以正常工作。每当用户提供无效凭据时,都会在 Internet Explorer 中弹出 NTLM 对话框。
我通过 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做到这一点?