【问题标题】:Force Basic Authentication with HttpSendRequest?使用 HttpSendRequest 强制进行基本身份验证?
【发布时间】:2013-10-11 20:49:14
【问题描述】:

连接到REST 服务时,使用InternetSetOption 设置usernamepassword。我注意到 WinInet 在我调用 HttpSentRequest 时不会发送 Authorization 标头,即使我先调用了 InternetSetOption。您必须首先从服务器获得带有 WWW-Authenication 标头的响应,这似乎很荒谬。这会在每次请求时向服务器创建一个完整的额外请求。

是否有WinInet 调用来强制在第一次调用时使用 Authorization 标头,还是我必须手动添加它?

【问题讨论】:

  • 你试过直接添加Authentication头吗?
  • 我最终直接添加了 Authentication 标头,但这似乎是一个杂项。如果您已经知道,为什么 WinInet 不允许您指定身份验证方案?

标签: c++ authentication wininet


【解决方案1】:

在 HttpSendRequestW 之前调用函数 InternetSetOptionW。例如:

InternetSetOptionW( hRequest, INTERNET_OPTION_USERNAME, (void*) pwszAuthUserName, wcslen( pwszAuthUserName ) + 1 );
InternetSetOptionW( hRequest, INTERNET_OPTION_PASSWORD, (void*) pwszAuthPassword, wcslen( pwszAuthPassword ) + 1 );
HttpSendRequestW( hRequest, 0, -1, 0, 0 );

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 2015-08-12
    • 2017-06-13
    • 2013-05-30
    • 1970-01-01
    • 2016-05-31
    • 2017-10-06
    • 2013-09-14
    • 2010-12-11
    相关资源
    最近更新 更多