- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 HTML5 移动应用程序,它与 WebServices
进行通信。 Web服务使用NTLM身份验证协议(protocol)。我在通过 JavaScript 处理握手时遇到困难。 NTLM 发送 401 Unauthorized
作为对我的 POST 的响应,但我没有找到任何方式来响应。
是否可以使用 JavaScript 进行 NTLM 身份验证?我应该建立一个代理网络服务吗?中间的基本身份验证?
我的 jQuery 调用类似于...
$.ajax({
type: "POST",
url: URL,
contentType: "text/xml",
dataType: "xml",
data: soapRequest,
username: 'username',
password: 'password',
xhrFields: {
withCredentials: true
},
success: processSuccess,
error: processError
});
最佳答案
您不必响应 NTLM(集成 Windows 身份验证)质询,如果配置正确,您的浏览器应该会为您做这件事。还可能出现许多其他并发症。
第 1 步 - 浏览器
检查浏览器是否可以使用 NTLM Web 应用程序或通过首先直接访问您正在开发的软件来访问和发送您的凭据。
第 2 步 - JavaScript withCredentials 属性
当我未能将“withCredentials”属性设置为“true”时,收到的 401 Unauthorized 错误和描述的症状完全相同。我不熟悉 jQuery,但请确保您设置该属性的尝试成功。
这个例子对我有用:
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "https://localhost:44377/SomeService", true);
xhttp.withCredentials = true;
xhttp.send();
xhttp.onreadystatechange = function(){
if (xhttp.readyState === XMLHttpRequest.DONE) {
if (xhttp.status === 200)
doSomething(xhttp.responseText);
else
console.log('There was a problem with the request.');
}
};
第 3 步 - 服务器端启用 CORS(可选)
我怀疑人们最终提出这个问题的一个主要原因是他们正在自己的工作站上开发一个组件,而另一个组件则托管在其他地方。这会导致Cross-Origin Resource Sharing (CORS)问题。解决办法有两种:
简而言之,要使用凭据启用 CORS,您必须:
这是我的 global.asax 文件中的工作 .NET 代码示例。我认为很容易看到正在发生的事情并在需要时翻译成其他语言。
void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.HttpMethod == "OPTIONS")
{
Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
Response.AddHeader("Access-Control-Max-Age", "1728000");
Response.End();
}
else
{
Response.AddHeader("Access-Control-Allow-Credentials", "true");
if (Request.Headers["Origin"] != null)
Response.AddHeader("Access-Control-Allow-Origin" , Request.Headers["Origin"]);
else
Response.AddHeader("Access-Control-Allow-Origin" , "*"); // Last ditch attempt!
}
}
关于JavaScript/Ajax NTLM 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527749/
我正在做一些关于 Windows 密码的研究,我有一个小问题。 Windows 对用户密码进行加密并存储在:C:\WINDOWS\system32\config\SAM 通过NTLM算法(加Syske
我一直在尝试在 IIS 托管的网站中使用 service worker 来缓存站点的一些静态内容。该站点是使用 Windows 身份验证的内部应用程序。我已经能够在没有太多麻烦的情况下注册和运行 se
我的任务是创建一个脚本,该脚本登录到公司门户转到特定页面,下载该页面,将其与早期版本进行比较,然后根据所做的更改向特定人员发送电子邮件。最后一部分很简单,但给我带来最大麻烦的是第一步。 在使用 url
我知道有很多关于 SO 的问题与此类似,但我找不到针对这个特定问题的问题。 首先有几点: 我无法控制我们的 Sharepoint 服务器。我无法调整任何 IIS 设置。 我相信我们的 IIS 服务器版
我浏览了大量 SO 文章,甚至浏览了其他网站,但似乎无法让这项服务正常工作。我有一个 SOAP 服务,我正在尝试访问它,它的配置如下:
我正在查看一些遗留代码并试图确定应用程序是使用 ntlm 还是 ntlmv2。 查看源将响应头设置为“WWW-Authenticate”、“NTLM”。 但我不确定这是否表明身份验证类型。 如何区分
我试图使用NTLM身份验证对我使用RestSharp的TeamCity进行REST调用。 IRestClient _client=new RestClient(_url); _client.Authe
我正在尝试使用需要 NTLM 身份验证的 API。此 curl 命令工作正常: curl -X POST --header 'Content-Type: application/json' --hea
我在公司 Internet 代理后面的 VMWare VPC 中运行程序 (Mathematica)。安装在该 VPC 中的各种程序(如 IE、Chrome、Excel、Word、Acrobat Re
我正在用java开发一个应用程序,以从交换服务器(版本10)获取电子邮件附件,我有Windows 7(32位)电脑。我的代码编译成功,但在运行时出错,说- May 20, 2013 5:58:46 P
我最近开始学习 C#。我试图用这种语言生成一个 NTLM 散列,但找不到为我执行此操作的函数。在 python 3.x 中,我将导入 hashlib 并使用 hashlib.new("md4", "H
我正在尝试创建一个应用程序,该应用程序使用用户名和密码连接到使用 NTLM 身份验证(不是我的,所以我无法更改身份验证方法)的网页,并返回页面的源代码,稍后我将使用它提取我需要的信息。 我的问题是身份
我有一个问题。当我尝试访问我的 Web 应用程序时出现此错误 Response header 'WWW-Authenticate' value of 'NTLM TlRMTVNTUAACAAAAAAA
我从调用 WCF 服务的 ASPX 页面收到以下错误。 The HTTP request is unauthorized with client authentication scheme 'Ntlm
尝试在 JavaMail 中使用 NTLM 连接到 Exchange 服务器。我可以连接到 SMTP,但不能连接 IMAP。我还可以通过 OS X Mail.app 应用程序使用相同的主机/用户名/密
我正在尝试从需要 NTLM 登录的 url 中提取信息。 我最初收到 401 错误,经过一些调整后能够拉出页面,说明我输入了无效凭据。 用户名和密码正确,但我无法通过无效凭据页面。 Lgn2.py:
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在运行 curl 命令,以便从 Linux 机器上的 Windows 2012 服务器获取信息。每次,我都会收到 NTLM 握手被拒绝的错误。以前遇到过这个问题吗?可以解决吗? 最佳答案 你试过
在 Visual Studio 2012 中,使用发布配置文件和 Web 部署可以大大简化部署。但是它仍然缺少一些东西,或者我可能还不知道如何使用它。 我更喜欢使用 NTLM 身份验证,而不将用户名和
我使用 Samba 来实现窗口认证。在我的 web.xml 我把这个 NtlmHttpFilter jcifs.http.NtlmHttpFilter jcifs.http.domainC
我是一名优秀的程序员,十分优秀!