Разрешение доступа к сайту MVC с использованием аутентификации Windows через группы через имя пользователя
У меня есть сайт MVC2, который теперь разрешает доступ к нему через проверку подлинности Windows и использует поставщика ролей ASP.net для обеспечения авторизации. Я пытаюсь найти способ, позволяющий сайту разрешить пользователю доступ к сайту, если его имя пользователя является членом определенных групп, поэтому мне не придется регистрировать пользователя в sql, а просто зарегистрировать группу с доступом, У кого-нибудь есть идеи, как это сделать? Есть ли быстрый и грязный способ? До сих пор в моих интернет-исследованиях я не нашел быстрый и грязный способ сделать это? Любая помощь будет отличной.
Спасибо
1 ответ
Поиск информации о роли / группе для пользователя
ASP.NET предоставляет полезную возможность "управления ролями", которая позволяет разработчикам отображать пользователей в логические "роли", которые затем можно использовать для лучшего контроля возможностей конечного пользователя и доступа к авторизации. Например, как разработчик, я мог бы создать роль "менеджеры" для своего веб-приложения, а затем ограничить доступ к частям сайта только для тех пользователей, которые имеют роль "менеджеры" (примечание: я буду публиковать дополнительные рецепты в будущее, которое обсудит, как в полной мере использовать функции авторизации и возможностей управления ролями подробнее).
При использовании проверки подлинности Windows ASP.NET позволяет разработчикам создавать и заполнять роли из нескольких источников. Например, разработчик может настроить встроенный ASP.NET 2.0 SqlRoleProvider для сопоставления пользователей Windows с пользовательскими ролями приложений, которые хранятся в базе данных. Этот подход очень полезен для сценариев, где могут существовать сопоставления ролей для конкретных приложений, которые не имеют смысла проталкивать в централизованное дерево / хранилище Active Directory.
ASP.NET также упрощает доступ к центральным сопоставлениям групп Windows и Active Directory из приложения. Например, если в сети Active Directory есть группа Windows, называемая "DOMAIN\ Manager", приложение ASP.NET может определить, принадлежит ли текущий пользователь, прошедший проверку подлинности Windows, посещающий сайт ASP.NET, к этой группе, написав такой код:
If User.IsInRole("DOMAIN\managers") Then
Label1.Text = User.Identity.Name & " is a manager"
Else
Label1.Text = User.Identity.Name & " is not a manager"
End If
Обратите внимание, что поиск роли / группы выполняется с помощью метода "User.IsInRole(rolename)", который является равноправным для свойства User.Identity.Name.