我一直在研究Web(HTML / HTTP)脚本,其中有一个步骤,通过输入密码来批准某些文档来验证操作。
由于401错误,该步骤失败。 深入研究时,将通过授权令牌“ Authorization:Basic aXRlc3QwMDE6SlZuS1NYU14 =“。
尝试将其关联,但是由于它是在我在应用程序中单击“批准”后在客户端生成的,因此无法将其关联。 每当我尝试批准文档时,值都会更改。 有什么方法可以从请求标头中捕获授权值并将其传递到同一请求中? 还是这是Web协议的局限性?
我添加了此标头,因为我无法关联该值。 web_add_header(“ Authorization”,“ Basic aXRlc3QwMDE6SlZuS1NYU14 =”);
这是我得到的错误
“ HTTP状态代码= 401(未经授权),用于“ https:***********************”
感谢您的回应!
谢谢, 拉克
答案 0 :(得分:1)
Web HTTP / HTML协议基于web_set_user API提供的凭据来构建Authorization标头,作为对HTTP 401状态的响应。
web_set_user("<username>", "<password> ", "<server>:<port>");
此标头的结构取决于身份验证类型(基本,NTLM,摘要或协商)。
我们可以选择预先发送此类标头(强制身份验证),而无需从服务器接收HTTP 401(例如,强制基本身份验证,我们可以使用web_set_sockets_option("INITIAL_AUTH", "Basic");
步骤。
提供凭据的另一种方法是web_add_header API。
像:web_add_header("Authorization", " Basic aXRlc3QwMDE6SlZuS1NYU14=");
基本身份验证令牌是base64编码的字符串,其中包括“:”组合…
对于上面的示例-itest001:JVnKSXS ^
我建议对来自不同捕获会话的几个样本进行解码,以了解其逻辑,然后确定哪种方法与客户端行为相匹配。