Windows Identity Framework на ASP.NET MVC - как авторизовать пользователя для каждого действия? - PullRequest
1 голос
/ 21 декабря 2010

Windows Identity Framework на ASP.NET MVC - как авторизовать пользователя для каждого действия?

Как:

    [Authorize]
    public ActionResult About()
    {
        return View();
    }

Вместо обеспечения безопасности на уровне всего сайта, как по умолчанию используется интеграция сайтов WIF?

UPDATE: Может, стоит спросить, как разрешить анонимным пользователям доступ к сайту?

Ответы [ 2 ]

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

Ну, как оказалось, элемент авторизации должен быть правильно установлен в web.config.

По умолчанию это что-то вроде:

    <authorization>
        <deny users="?" />
    </authorization>

Что просто означает запретить всем анонимным пользователям.

Но в MVC оно должно выглядеть так:

    <authorization>
        <!--<deny users="?" />-->
    </authorization>

Это означает, что разрешить всем пользователям и оставить приложение для обработки аутентификации.

Таким образом, значение WIF по умолчанию должно быть отменено:

От:

<authentication mode="None" />

К чему-то вроде:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

Вот так, для каждого действия авторизация в MVC работает. Ницца. :)

Подробнее об авторизации: http://msdn.microsoft.com/en-us/library/wce3kxhd.aspx

0 голосов
/ 21 декабря 2010

Вы можете настроить модель аутентификации сайта в Web.config

http://msdn.microsoft.com/en-us/library/aa291347(v=vs.71).aspx

...