我在通过 Perl 对网站进行身份验证时遇到了一些问题。我可以使用浏览器毫无问题地登录该网站,如果我这样做了,它会向我显示一个小提示,我必须在其中提供我的凭据。随和!
但是现在我想使用脚本连接到该站点,但我总是遇到 401 未经授权的错误。
我尝试连接的服务器运行 IIS7 并且 WWW-Authenticate 标头告诉我,该领域将类似于“协商,NTLM”(我尝试了所有三种可能性,其中一个或两个都没有发生)。
到目前为止,我真的不知道如何弄清楚需要什么信息,我最后一次尝试是获取表单,我必须在其中提供凭据,然后使用 submit_form 函数,但是要获取表单,我必须建立连接。
我真的很困惑,因为我尝试了我在 google 上找到的大部分东西,但我不知道发生了什么,特别是从技术角度来看,这可以给我一个提示。
好吧,如果有人可以帮助我,我将非常感激,我提前感谢您这样做。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use WWW::Mechanize;
use Authen::NTLM;
my $url = "some.url";
my $usr = 'bernd';
my $pwd = 'bernd';
my $mech = WWW::Mechanize->new(ssl_opts => {verify_hostname => 0});
$mech -> credentials($url.":443","NTLM",$usr,$pwd);
$mech->get("https://".$url); #added the https, because $url doesn't have it
print $mech->forms;
PS:绕过ssl验证是因为我一开始遇到的证书问题。