IIS权限挫折

我正在尝试configuration查询SharePoint列表的Web服务。 Web服务应允许来自客户端的匿名访问。 然而,我所观察到的令我感到困惑。 以下是对我的环境的高度概述:

Web服务客户端 – > Web服务 – > SharePoint

我发现运行Web服务客户端的用户需要访问SharePoint。 换句话说,用户凭证正在从客户端,通过Web服务层,一直传递到SharePoint。 我更喜欢的是只有Web服务应用程序池身份帐户被授予权限。 禁用集成安全性后,只启用Web服务IISconfiguration设置中的匿名访问,将引发401(身份validation被拒绝)exception。

我已经validation应用程序池标识帐户具有SharePoint网站的权限。 我也已经validation在web.config文件中authentication模式被configuration为“windows”。 我不在任何地方使用模拟。

请注意,这是在Windows Server 2003上的IIS 6.0中托pipe的自定义Web服务(不使用内置的SharePoint Web服务)。

编辑:我没有连接到SharePoint Web服务上暴露的其他Web方法。 调用这些Web方法我没有任何问题。 此外,我已validation客户端用户正在传递到SharePoint,因为我必须授予用户(运行客户端的人)对SharePoint的访问权限。

我相信你会想在你的web服务web.config中设置为“无”的身份validation模式。 这应该允许匿名客户端请求,然后IIS将在应用程序池标识的上下文中连接到您的Sharepoint站点。

更新:你检查网站上的特定文件的身份validation? 它可能不同于站点configuration。

**更新之前:**如果您仅在Web服务站点上configuration了匿名身份validation。 这个网站没有办法进行创意/授权。

您收到的错误(401和403)来自Web服务站点。 如果问题在访问SharePoint站点。 错误不会来自IIS,而是来自您的代码。

您应该将您的疑难解答集中在401和403上。首先,完整的错误是什么。 在iis日志中查找它们。

Web服务调用需要在这里将凭证传递给SharePoint。 您可以编写一些凭据或使用模拟,并获取用户的Windows凭据。