【问题标题】:SharePoint 403 error for users not exist in "All People"“所有人”中不存在用户的 SharePoint 403 错误
【发布时间】:2010-11-04 04:50:17
【问题描述】:

这很复杂,我会在这里描述一下。

  1. 如果用户和他的组对 SP 站点上的任何内容都没有访问权限,则用户将在登录时获得正确的“错误:拒绝访问”SharePoint 页面。
  2. 如果用户可以通过其组成员身份访问某些内容,则 一种。如果用户列在“所有人”列表中,则用户可以毫无问题地登录并使用该站点。 湾。如果用户未在所有人列表中列出,则用户将获得 IIS 403 错误页面。回到服务器上,将出现“服务应用程序池'[IIS 应用程序池名称]'的进程与万维网发布服务发生致命通信错误”事件,这表明 IIS 应用程序池发生崩溃。如果用户热衷并不断尝试,他可能会频繁崩溃应用程序池,最终导致应用程序池停止,应用程序宕机!!!

我们正在使用表单身份验证和 Asp.net 成员资格提供程序和角色提供程序。看来,当 2b 发生时,SP 反复(应该只有一次)调用会员提供程序 GetUser 方法(直到出现致命的通信错误,我猜)。我相信它是用于 initila 用户配置文件导入的。发生 2a 时,不会调用 GetUser 方法。

我们可以手动执行一些操作,例如将用户添加到访客组,然后将用户从访客组中取出,这会将用户添加到所有人列表中,以便他能够登录。在手动过程中,成员资格提供程序 GetUesr 也会被调用,但只需调用一次即可正常工作。

此问题最近才开始出现,并且仅在一个环境(生产!)中出现。一切都很好,其他环境 UAT 和培训环境都没有这个问题。我们已经比较了环境并检查了所有明显的情况,找不到任何可能导致这种情况的差异。该产品有大约 110 个用户,比其他环境多,但仍然不多。

有人可以帮忙吗?

【问题讨论】:

  • 如果您的系统上没有部署自定义代码,您可能会在serverfault.com 获得更好的答案。

标签: sharepoint profile http-status-code-403


【解决方案1】:

根据下面的评论,GetUser 的自定义实现中似乎发生了错误,调用网络服务之后。它也只发生在数据最多的环境中。

因此,接下来要检查的是调用 Web 服务和返回 getuser 之间的代码。你有设置最大长度的数组吗?您是否对数组中的特定项目包含哪些数据做出任何假设?您如何检查/记录 Web 服务是否返回了有效结果?

希望对你有帮助

设拉子

【讨论】:

  • 谢谢。我们基于 ASP.NET 成员资格提供程序实现了自定义成员资格提供程序。所以它们在两个环境中肯定是一样的。不过,我们的成员资格提供程序的一件事是 GetUser 方法从另一个 Web 应用程序调用 Web 服务。 Web 服务报告调用已成功执行。
【解决方案2】:

找到问题的原因。所有人员列表上的高级设置已将项目级别编辑权限设置为无。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2013-10-15
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多