在我的客户端Web应用程序中,我需要使用ntlm协议对服务器进行身份验证。在使用Angular1时,通过$ http服务获取请求,浏览器(chrome,edge)通过提示用户输入用户名/密码来执行NTLM身份验证的所有3个步骤。
但是,对于Angular2,使用Angular2附带的http服务,浏览器(chrome,edge)只返回401并且不执行后续步骤(它们甚至不提示用户提供凭据)。
在使用Angular2时,如何让浏览器为我做ntlm身份验证? 请不要建议使用ntlm javascript库。 我是StackOverflow的新手。如果我没有提供足够的信息或重复这个问题,抱歉。
先谢谢。
答案 0 :(得分:4)
“withCredentials”需要在标头中设置为true才能使其正常工作。我的代码现在正在运行。
let options = new RequestOptions({ headers: headers, withCredentials: true });
答案 1 :(得分:3)
我不相信问题出在NTLM或编码工作中。根据Anton Bessonov,一个非常有信誉的SO社区成员,Angular2中的一些模块还没有生产就绪,而Angular1是一个非常稳定的代码版本,我建议在可预见的未来坚持使用Angular1。参考:angular 1 vs angular 2 for new project