401未经授权使用OData更新和删除

时间:2011-07-15 10:12:35

标签: azure odata wcf-data-services restlet http-status-code-401

我第一次偶然发现了一个问题,即解决方案尚未完全提供给SO,但我希望有人可以提供帮助。

我的问题类似于PUT and DELETE in RESTful WCF Service cause 401 Unauthorized error

也就是说,我有一个WCF数据服务,每当我尝试进行更新或删除时,我都会获得401(阅读和发布工作没有任何问题)。与上述帖子的不同之处在于,我不是在IIS中托管我的服务,而是在Windows Azure上,因此我无法应用该解决方案。

我在.NET客户端和使用OData扩展的restlet客户端上遇到了同样的问题(401: invalid credentials when attempting updates or deletes)。但是,在.NET客户端上,我可以通过设置UsePostTunneling = true来解决此问题。

在我的服务中,我设置了config.SetEntitySetAccessRule("*", EntitySetRights.All)

有谁知道如何解决我的restlet客户端的问题?

1 个答案:

答案 0 :(得分:0)

我要检查的第一件事是看你的处理程序是否启用了PUT和DELETE谓词。您是从完整IIS中的Web角色运行此操作还是使用Hosted Web Core(HWC)或其他?通常,超过401,我看到405错误,因为WebDAV在机器上,PUT和DELETE动词在那里发生冲突。您最终必须为应用程序禁用WebDAV。

我还会在你的web.config中检查你的身份验证方法。我已经看到'none'类型导致问题,所以将其更改为Forms。