加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:06:52 所属栏目:大数据 来源:网络整理
导读:这是 a prior question of mine的后续问题.我已经了解到,在请求中使用HTTP用户名/密码参数时,预计会有2个不同的Get请求发送到服务器.第一次尝试不包括用户名/密码凭据,但如果身份验证失败,则会发送另一个包含这些凭据的相同请求. 但是,在使用Indy的TIdHTTP时
这是 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的身份验证.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读