【发布时间】:2011-06-20 19:09:31
【问题描述】:
我们有一个 WCF Web 服务,它采用“用户名:密码”授权标头。该服务在我的开发 Windows 7 机器和生产中的 Windows Server 2003 机器上运行良好。
但是,我们的开发和新生产服务器是 Windows Server 2008,服务无法接收授权标头。
您可以在下面看到来自 Fiddler 的原始请求包含 Authorization 标头。
POST http://servername/service.svc/soap HTTP/1.1
内容类型:文本/xml; charset=utf-8
授权:test:test
VsDebuggerCausalityData:uIDPozpQ7mbpOVRFu79Tl0h3mkIAAAAAJMavDzJlIkqyjJDSIIxdVuKNB0y6n29OvukFtyRt0wwACQAA
SOAPAction:“...”
主机:服务器名称
内容长度:152
期望:100-继续
接受编码:gzip、deflate
连接:保持活动状态
我还没有成功启用 IIS 高级日志记录以查看是否可以在服务器上获取任何额外信息。
IIS 网站配置为匿名身份验证。
服务实现了IAuthorizationPolicy,Evaluate方法肯定被调用了,这就是缺少授权信息的地方。
感觉好像我在 IIS 中配置错误,但我不知道是什么!任何帮助将不胜感激。
【问题讨论】:
-
从 Windows Server 2003 切换到 2008 时,您是否也从 IIS 6 切换到 7?如果是这样,我怀疑这与 IIS 版本有关,而不是与 Windows Server 版本有关。您可以考虑相应地更改问题的标题。
-
好点。构建该服务的前同事还告诉我,它最初在开发 Windows Server 2008 服务器上工作。这只会让这更令人沮丧。
-
确保 IIS 服务器处理基本授权,我认为它默认是禁用的。
-
生产服务器上缺少此功能,但在开发服务器上已启用。好像没什么区别。
标签: wcf iis-7 authorization