ASP.NET MVC Авторизация для динамического пути - PullRequest
1 голос
/ 06 декабря 2010

Я использую проверку подлинности с помощью ASP.NET MVC.Внутри web.config на уровне приложения я могу установить пути, по которым мне требуется аутентификация, следующим образом:

<location path="subdir1">
<system.web>
    <authorization>
        <allow users ="?" />
    </authorization>
</system.web>
</location>

subdir1 - это имя папки в папке Views.Это работает для маршрутизации веб-страницы как siteurl.com / subdir1 .

Однако, если мой subdir1 находится под другим динамически созданным маршрутом, этот параметр не работает.Например; siteurl.com / dynamic / subdir1 не запрашивает аутентификацию. динамический создается во время выполнения, и web.config не знает об этом при запуске приложения, но его это не должно волновать, я просто хочу, чтобы он запрашивал аутентификацию всякий раз, когда есть доступ к subdir1 route.

Есть ли способ, которым я могу установить атрибут пути местоположения для этого случая?или у вас есть другой способ решить эту проблему?

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

Ответы [ 2 ]

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

Вы можете управлять авторизацией, используя атрибут Authorize соответствующих действий или контроллеров.

[Authorize]
public ActionResult MyAction()
{
   //stuff
}

Дополнительную информацию можно найти по адресу Авторизация ASP.NET MVC

1 голос
/ 06 декабря 2010

Вы должны использовать AuthorizeAttribute на своих контроллерах / действиях, а не настраивать доступ в файле web.config для маршрутов, которые отображаются на ваши контроллеры. Атрибут нужно применять только к тем действиям (методам), которые требуют авторизации, если не для всех ваших действий требуется зарегистрированный пользователь.

[Authorize]
public class ProtectedController : Controller
{
    // all actions in this controller require the user to be logged in
}

public class MixedController : Controller
{
    [Authorize]
    public ActionResult ProtectedAction()
    {
        // this action requires the user to be logged in
    }

    public ActionResult PublicAction()
    {
       // this action is available to anonymous users
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...