当前位置 : 主页 > 编程语言 > delphi >

delphi – 为什么我必须发送两个连续的HTTP Get请求进行身份验证?

来源:互联网 收集:自由互联 发布时间:2021-06-23
这是 a prior question of mine的后续问题.我已经了解到,在请求中使用HTTP用户名/密码参数时,预计会有2个不同的Get请求发送到服务器.第一次尝试不包括用户名/密码凭据,但如果身份验证失败
这是 a prior question of mine的后续问题.我已经了解到,在请求中使用HTTP用户名/密码参数时,预计会有2个不同的Get请求发送到服务器.第一次尝试不包括用户名/密码凭据,但如果身份验证失败,则会发送另一个包含这些凭据的相同请求.

但是,在使用Indy的TIdHTTP时,它只发送一个请求,该请求因未授权而失败.需要第二个相同的连续请求才能实际获得响应.

我想知道,这是设计,还是Indy的缺陷?

你需要确保你:

>在TIdHTTP.HTTPOptions属性中启用了hoInProcessAuth标志.
>要么:

一个.分配的OnAuthorization事件处理程序,用于设置Authentication.UserName和Authentication.Password参数,并将Handled参数设置为True.

湾分配给TIdHTTP.Request.Password属性的非空字符串.
>您的uses子句中指定的任何必需的IdAuthentication …单元(例如IdAuthenticationNTLM或IdAuthenticationSSPI)或IdAllAuthentications单元.

如果不满足这些条件,TIdHTTP将不会尝试处理基于HTTP的身份验证.

网友评论