Безопасность на основе ролей 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>
Другие вопросы по тегам