【问题标题】:IIS 7.5 site can't authenticate itselfIIS 7.5 站点无法对自身进行身份验证
【发布时间】:2013-09-18 09:22:08
【问题描述】:

我在同一个服务器和同一个域(site1.domain.com、site2.domain.com...)上有几个站点,它们通过 http post 请求相互通信。这很好用,但我也有一个所有网站的开发版本,它在基本身份验证下,所以你需要一个用户名/密码才能看到这些网站,而在这些网站上,http post 请求不起作用。

这似乎是因为服务器无法对自己进行身份验证,这对我来说有点奇怪,我对 IIS 没有太多经验,所以你可能错过了一些东西。

有人知道如何解决这个问题吗? 不知道有没有影响,但是网站使用的是php,而不是asp.net

【问题讨论】:

  • 显示一些代码?你是如何提出要求的?您如何尝试和验证?
  • 这是 Drupal7 站点,所以我使用 drupal_http_request() 函数。 site2.domain.com 只是向 site1.domain.com/xxx 发出请求,其中运行一个脚本来执行一些数据库查询,然后返回结果。所有开发站点(不起作用的地方)都使用 IIS 中的基本身份验证选项。
  • 因此您需要在请求中发送身份验证凭据,而不是 drupal 用户,但这可能会有所帮助:drupal.org/node/715990
  • 可能有点不清楚,但问题不是drupal 身份验证,而是IIS 服务器身份验证。要访问网站,您必须使用在服务器上创建的用户登录,即 IIS 身份验证。所以问题是,当我向 site1.domain.com/xxx 发出请求时,服务器无法访问该 url,因为它没有针对服务器进行身份验证。
  • 是的,我明白了,所以您需要在 http 请求中发送凭据。在 c# .net 你会做 request.Credentials = new NetworkCredential(user,password);您需要在所有请求中做类似的事情,如果这不适用于 drupal_http_request 方法,您可以通过 base64 编码您的凭据自己创建授权标头

标签: php iis iis-7.5


【解决方案1】:

您需要随请求一起发送您的凭据。我对 drupal_http_request 了解不多,但如果它没有内置方法来向请求添加凭据,您可以通过 base64 编码凭据手动添加 auth 标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2012-09-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多