ASP.NET MVC Членские роли - PullRequest
       7

ASP.NET MVC Членские роли

2 голосов
/ 26 января 2012

Мне нужны некоторые пояснения для членства в ASP.NET;пожалуйста, помогите мне с этим.Я использую среду ASP.NET MCV 3 и намереваюсь использовать членство в ASP.NET для управления пользователями и аутентификацией с использованием либо LDAP, либо SQL.

Насколько я понял до сих пор;Членство в ASP.NET:

[Пользователь] имеет [Роль] или [Роль] имеет [Пользователи]

Но в моем проекте у меня более сложная бизнес-логика;где мне нужна эта иерархия для следующего уровня, как

[Пользователь] имеет [Роль] -> имеет [Задачи]

Таким образом, я могу динамически назначать / отзывать задачи / разрешения для моих контроллеров MVC или действий;

Я планирую начать работу с членством в SQL-провайдере, а затем я переключусь на LDAP / AD.

Я также изучил AzMan и NetSqlAzMan;они выглядят нормально, чтобы устранить ошибку, но их использование кажется странным;(не такой аккуратный, как членство в ASP.NET; где мы можем просто использовать аннотации для назначения ролей / задач контроллеру или его действиям.

Ограничено ли членство в ASP.NET только ролями? и никаких задач / операций?Или есть какой-то обходной путь для этого?

Могу ли я наслаждаться простотой использования членства в ASP.NET и на той же дороге иметь иерархию следующего уровня для ролей -> Задачи -> Операции.

Любая помощь будет принята с благодарностью.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Поставщик членства ASP.NET поддерживает только роли из коробки.Он не поддерживает задачи или операции.Однако создать пользовательский поставщик ролей относительно просто, чтобы удовлетворить практически любые потребности.

Для хорошего начала посмотрите «Внедрение поставщика ролей» в http://msdn.microsoft.com/en-us/library/ie/8fw7xh74.aspx.Вы также можете найти образец поставщика ролей по адресу http://msdn.microsoft.com/en-us/library/ie/tksy7hd7.aspx.

2 голосов
/ 26 января 2012

Членство в ASP.NET поддерживает только роли, без задач и операций.

Вы можете использовать атрибуты, чтобы указать, какие операции разрешены для каких ролей, например:

[Authorize(Roles="Administrator")]
public ViewResult Edit(int id)
{
    return View("Edit");
}

Или вашкод может выполнить проверку с помощью метода IsInRole:

if (User.IsInRole("Administrator"))
{
    ...
}

Удачи!

...