它很复杂,我将尝试在这里描述它。
- 如果用户和他的组对 SP 站点上的任何内容都没有访问权限,则用户将在登录时获得正确的“错误:拒绝访问”SharePoint 页面。
- 如果用户可以通过他的组成员身份访问某些东西,那么 a. 如果用户列在“所有人”列表中,则用户可以毫无问题地登录和使用该站点。湾。如果用户未在所有人列表中列出,则用户将获得 IIS 403 错误页面。回到服务器上,将出现“服务应用程序池'[IIS 应用程序池名称]'的进程与万维网发布服务发生致命通信错误”事件,这表明 IIS 应用程序池发生崩溃。如果用户热衷并不断尝试,他可能会频繁崩溃应用程序池,最终导致应用程序池停止,应用程序宕机!!!
我们正在使用表单身份验证和 Asp.net 成员提供程序和角色提供程序。看来,当 2b 发生时,SP 反复(应该只有一次)调用会员提供程序 GetUser 方法(直到出现致命的通信错误,我猜)。我相信它是用于 initila 用户配置文件导入的。发生 2a 时,不会调用 GetUser 方法。
我们可以手动执行一些操作,例如将用户添加到访客组,然后将用户从访客组中取出,这会将用户添加到所有人列表中,以便他能够登录。在手动过程中,成员资格提供程序 GetUesr 也被调用,但只调用一次并且工作正常。
这个问题最近才开始出现,并且只在一个环境中(生产!)。一切都很好,其他环境 UAT 和培训环境都没有这个问题。我们已经比较了环境并检查了所有明显的情况,找不到任何可能导致这种情况的差异。该产品有大约 110 个用户,比其他环境多,但仍然不多。
有人可以帮忙吗?