AD авторизация на основе ролей в MVC3 - PullRequest
0 голосов
/ 16 ноября 2011

В нашем приложении для интрасети на основе MVC3 один пользователь AD может принадлежать ко многим ролям, и во время входа он будет выбирать роль, под которой он хочет войти. В настоящее время мы аутентифицируем пользователя, используя следующий подход: http://www.codeproject.com/KB/system/everythingInAD.aspx#35

Как только пользователь проходит проверку подлинности и обнаруживает, что принадлежит к роли, к которой он пытается подключиться, мы хотели бы разрешить доступ к определенным контроллерам и действиям на основе их роли. Мы бы предпочли использовать атрибут Authorize MVC.

Поскольку мы не используем провайдеров для аутентификации, можем ли мы каким-то образом использовать атрибут Authorize для ограничения доступа?

Спасибо! Bala

Ответы [ 2 ]

0 голосов
/ 07 февраля 2013

@ Pankaj прав, но Вы можете определить свой собственный Атрибут для экзамена: class MyAuthorizationAttribute : FilterAttribute, IAuthorizationFilter и переопределить его метод OnAuthorization.затем украсьте каждое действие этим пользовательским атрибутом и рассчитайте авторизацию в теле OnAuthorization.это образец:

public class MyAuthorizationAttribute : FilterAttribute, IAuthorizationFilter
    {
        public string _name;

        public MyAuthorizationAttribute(string name)
        {
           this._name = curPerm.name;
        }


        public void OnAuthorization(AuthorizationContext filterContext)
        {
          // Calculate permissions...
          if (!permit)
          {               
             Exception e = new MethodAccessException("Access to partial denied!");
             throw new Exception("Can't access via address bar!", e);
          }
        }
}

и использование в действии

[MyAuthorizationAttribute ("Add")]
public ActionResult Index()
{
    ViewBag.Message = "About page";

    return View();
}

Надеюсь, это полезно.Удачи.

0 голосов
/ 16 ноября 2011

Вы можете использовать атрибут Authorize, если ваш пользовательский поставщик членства наследует от класса asp.net MemberShipProvider.

Но если вы решите получить совершенно новый ресурс, который не наследует класс asp.net MembershipProvider, вы не сможете использовать атрибут Authorize attirbute.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...