ISA 或 IIS 在发布时删除 HTTP 授权标头

ISA 或 IIS 在发布时删除 HTTP 授权标头

我正在使用 Asp.Net WebApi (RC) 开发 Web API,并通过 http“Authorization”标头传递用户凭据。我在服务器端接收“Authorization”http 标头时遇到问题。我在本地机器上测试时能够接收它。甚至在生产服务器上托管并通过内部 IP 地址访问 URL 时也能正常工作。但在公共域上发布时不起作用。

所以我猜测,这与 IIS 或 ISA 服务器有关。

另外,如果我在 IIS 中创建 2 个网站,一个在域上发布,一个在内部发布(都指向同一个物理目录),那么它也可以在内部托管的网站上运行,但不能在已发布(公开)的网站上运行。

所以我猜测这与 ISA 服务器有关(我对 ISA 服务器非常陌生)但不确定它是否可以修改 http 标头信息。

任何帮助均感激不尽。

谢谢,

答案1

我遇到了同样的问题(使用最新版本的 asp.net web api)。我将其追溯到 ISA Server 2006 发布规则,并按照以下步骤进行了修复:

  • 转到发布规则的属性并将身份验证委派设置为“无委派,但直接对客户端进行身份验证”
  • 停留在属性对话框中并转到侦听器 -> 属性 -> 身份验证 -> 高级 -> 选中复选框“允许通过 HTTP 进行客户端身份验证”

就这样了。此后,授权标头不再被删除。

答案2

您实际上并没有提供足够的有关您的环境的信息,更具体地说是 ISA 盒本身的信息来帮助解决此问题。

但是,我的第一个猜测是 ISA 框正在剥离一些标头信息。如果本地版本有效,则很可能这不是 IIS 问题。

请随意发布有关您的设置的更多信息。

相关内容