Это сложно, я попытаюсь описать это здесь.
- Если пользователь и его группа не имеют прав доступа к чему-либо на сайте SP, пользователь получит соответствующую страницу SharePoint «Ошибка: доступ запрещен» при входе в систему.
- Если у пользователя есть доступ к чему-либо через членство в его группе, то
а. Если пользователь указан в списке «Все люди», он может без проблем войти на сайт и использовать его.
б. Если пользователь не указан в списке «Все люди», он получит страницу ошибки IIS 403. Вернувшись на сервер, произойдет событие «Пул приложения, обслуживающего процесс« [имя пула приложений IIS] », столкнулся с фатальной ошибкой связи со службой публикации в Интернете», что указывает на сбой в пуле приложений IIS. Если пользователь заинтересован и продолжает пытаться, он может часто аварийно завершить работу пула приложений и в конечном итоге привести к остановке пула приложений и отключению приложения !!!
Мы используем проверку подлинности с помощью форм, а также поставщика членства в Asp.net и поставщика ролей. Похоже, что когда происходит 2b, SP многократно (должен быть только один раз) вызывает метод GetUser провайдера членства (я полагаю, что до неустранимой ошибки связи). Я считаю, что это для импорта профиля пользователя initila. Когда происходит 2a, метод GetUser не вызывается.
Мы можем вручную сделать такие вещи, как добавление пользователя в группу «Посетители», а затем удаление пользователя из группы «Посетители», что добавит пользователя в список «Все люди», чтобы он мог войти в систему. Во время ручного процесса также вызывается поставщик членства GetUesr, но только один раз, и он отлично работает.
Эта проблема только появилась недавно и только в одной среде (ПРОИЗВОДСТВО!). Все было хорошо, и другие среды UAT и учебная среда не имеют этой проблемы. Мы сравнили окружение, проверили все очевидное и не смогли найти никаких различий, которые могли бы вызвать это. В производстве работает около 110 пользователей, что больше, чем в других средах, но все же не так много.
Кто-нибудь может помочь?