ASP.NET MVC2 запретить доступ к контроллеру с IIS 7? - PullRequest
0 голосов
/ 17 декабря 2010

У меня есть каталог с именем admin.Физический путь к этому каталогу отсутствует, так как он жестко задан как префикс для моей области администрирования.

Как я могу защитить этот путь с помощью стандартной аутентификации?Я хочу, чтобы только пользователь Admin мог войти в эту область.Но главная страница должна быть доступна каждому пользователю.

1 Ответ

4 голосов
/ 17 декабря 2010

Если вы используете любой из встроенных вариантов аутентификации:

[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
}

Редактировать

Чтобы ограничить конкретным пользователем:

[Authorize(Users = "Admin")]
public class AdminController : Controller
{
}

Edit2

Да, вы можете, но это вроде hack .Создайте свой собственный класс и выведите его из RouteBase.

public class MyRoute : RouteBase
{

     public override RouteData GetRouteData(HttpContextBase context)
     {
          if (context.Request.Uri == XXX && context.User != YYYY)
              return forbiddenRoute;//redirect to forbidden page.
          else
              return null;
     }
}

Затем добавьте его в ваш global.asax.

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