Проверка членства на соответствие текущей роли - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть веб-приложение (MVC), которое использует членство для аутентификации / авторизации, где пользователь может иметь более одной роли и несколько стран с разными ролями.

Допустим, user1 - администратор и редактор в СШАи только редактор в Мексике.Когда пользователь входит в систему, ему предлагается выбрать и то, и другое (страну и роль).

AdminController имеет атрибут [Authorize (Rol = "Admin")].

В этом случае, если пользователь вошел в США в качестве редактора, действие в AdminContoller должно быть запрещено.

Какой «лучший» подход для проверки роли, которую пользователь в настоящее время зарегистрированна?

1 Ответ

0 голосов
/ 03 февраля 2012

Вы можете создать собственный атрибут Authorize:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        // Code here checks that user is Admin for currently selected Country
    }
}

, а затем использовать свой атрибут следующим образом:

[CustomAuthorizeAttribute (Roles="Admin")]

В этой статье более подробно рассматривается темаподробно.

...