Я пытаюсь создать приложение, которое использует <авторизация> правила ограничить группы, которые разрешены получить доступ к приложению. Я использую аутентификацию Windows и поставщика Windows Role для ASP.NET (AspNetWindowsTokenRoleProvider). Я использую локальные группы для определения ролей, поскольку домен, который я разрабатываю на, и домен, на котором будет в конечном счете развернуто приложение, будет отличаться.
То, когда я первоначально устанавливаю, развернуло мое приложение на сервере IIS7, и я устанавливаю сайт для использования стандартной аутентификации с надлежащим доменом по умолчанию, все хорошо работало для пользователей, которые были уже присвоены авторизованным группам. Однако, когда я попытался добавить нового пользователя к любой из авторизованных групп, этот пользователь никогда не разрешался получить доступ к приложению. Я сделал все, сохраняют для перезагрузки машины. Я перезапустил IIS, а также удалил все временные файлы и cookie на стороне клиента, напрасно.
Нужно указать, что это - приложение MVC ASP.NET, хотя я не думал, что это будет действительно иметь любое значение. Вот подходящие записи от моего web.config:
<!-- use windows authentication -->
<authentication mode="Windows" />
<!-- use the Windows role provider -->
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
<!-- global authorization rules -->
<authorization>
<allow roles="admins,contractors"/>
<deny users="*" />
</authorization>
Например, скажем, у нас есть пользователь, "Domain\joe", который в настоящее время не является членом локальной "администраторской" группы, но мы хотим добавить его. Мы идем, добавляют его, и затем когда Joe пытается войти в систему, он видит ошибку, что он не authroized (после того, как несколько неудавшихся входов в систему пытаются). Никакой объем перезапусков IIS или наличия, Joe удаляет свои cookie и другие временные файлы, не решит эту проблему.
ASP.NET сохраняет некоторый секретный кэш роли/группы? Как Вы идете о добавлении нового пользователя группе и затем удостоверяясь, что ролевой поставщик будет видеть, что пользователь был добавлен к группе?