its*_*ohn 6 iis proxy ntlm windows-authentication phantomjs
我正在尝试在我的Windows机器上使用cntlm代理与使用PhantomJS的Windows身份验证的IIS上的本地Web应用程序进行通信.要创建代理,我正在做:cntlm -v -u username@domain -p password -l 1456 localhost:80
我的应用程序住在 localhost/myapp
为了测试这是否有效,我尝试浏览,localhost:1456/myapp但我总是得到一个auth挑战,没有合理的用户名/密码组合似乎工作.有关为什么此设置可能无法按预期工作的任何想法?
当我在浏览器中点击代理端点时,这是来自cntlm的输出:
在与概念摔跤了一段时间后,我终于想出了如何设置这个.
安装cntlm后,我从命令提示符运行以下命令:
"c:\Program Files (x86)\Cntlm\cntlm.exe" -u <user_name> -d <domain_name> -H
Run Code Online (Sandbox Code Playgroud)
这会要求您输入密码,并在配置文件中吐出三个哈希值.
我将所需的配置削减cntlm.ini到:
Username <user_name>
Domain <domain_name>
PassLM <LM_hash>
PassNT <NT_hash>
PassNTLMv2 <NTLMv2_hash>
Proxy 192.168.7.1:80 #random proxy
NoProxy *
Listen 3133 # unused port
Run Code Online (Sandbox Code Playgroud)
cntlm强制您指定一个顶级代理,即使您不需要一个或有一个代理,因此该选项的任何有效数字都可以.设置NoProxy以*确保任何请求永远不会传递给指定的伪代理.
"c:\Program Files (x86)\Cntlm\cntlm.exe" -f在控制台中运行以验证一切正常.否则,启动和停止它作为服务.
要使用phantomjs进行测试,我使用了以下脚本:
var page = require('webpage').create();
page.open('http://<machine_name>/myapp', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)
<machine_name>不能localhost因为phantomjs在主机时绕过代理localhost,所以请改用你的机器名或ip地址.
要运行它: phantomjs --proxy=localhost:3133 test.js
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |