Безопасность на основе ролей ASP.NET с ролями AzMan и AD
Я пытаюсь оценить AzMan для одного из моих приложений ASP.NET, но у меня странная проблема. Мое тестовое приложение ожидает три роли:
- пользователь
- владелец
- Администратор
Я создал хранилище авторизации XML, расположенное в App_Data приложения, и добавил эти определения ролей. Я настроил мое тестовое приложение ASP.NET для использования AuthorizationStoreRoleProvider и добавил несколько тестовых кодов, которые используют Principal.IsInRole и PrincipalPermission. На моем локальном компьютере все работало хорошо с локальными учетными записями, назначенными ролям в AzMan.
Затем я перенес тестовое приложение на сервер и назначил пользователям и группам Active Directory роли AzMan. Теперь PrincipalPermission и Principal.IsInRole больше не работают. Интересно, что если я назначу встроенную группу Everyone для любой роли, она будет работать, поэтому возникнут некоторые проблемы с пользователями AD и группами, назначенными ролям. Могу ли я использовать хранилище авторизации XML с группами AD и пользователями? Что еще может вызвать такие проблемы?
2 ответа
Проверьте настройки безопасности в вашем приложении asp.net.
Похоже, анонимная аутентификация включена, поэтому ваши пользователи входят как анонимные пользователи, а не они сами, поэтому это работает для группы "все".
<roleManager enabled="true" cacheRolesInCookie="false" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="AspNetWindowsTokenRoleProvider" createPersistentCookie="false" maxCachedResults="25">
<providers>
<clear/>
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>