【发布时间】:2011-08-17 15:45:54
【问题描述】:
我们正在开发 WCF REST Web 服务,它只接收来自任何匿名用户的任意文本,然后在后端执行一些处理。
例如,这是我们网络服务中的一种方法:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
如果我们只使用默认的 IIS 设置,我们会得到一个(401) Unauthorized。然而,经过多次试验和错误,我们发现我们可以通过在实际的.svc 文件上为我们的服务授予对“所有人”的 WRITE 访问权限来使其工作。
我的问题是:为什么 IIS 需要对 .svc 文件具有 WRITE 访问权限才能使其工作?有没有更好的方法,还是我坚持使用这种骇人听闻(可能不安全)的解决方法?
WTF 微软?
可能相关:
【问题讨论】:
-
访问权限不一定要授予“所有人”。相反,经过身份验证的用户必须拥有这些权限。对于匿名访问,这是 IUSR。
标签: wcf iis rest iis-7 http-status-code-401