Исключение действия из авторизации в ASP.NET MVC 2 - PullRequest
4 голосов
/ 04 июня 2010

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

Ответы [ 4 ]

4 голосов
/ 04 июня 2010

Не используйте авторизацию Web.config в приложении MVC. Это может привести к уязвимостям безопасности на вашем веб-сайте.

Вместо этого используйте атрибут [Authorize], чтобы контролировать, кто имеет доступ к определенным контроллерам или действиям. (Вы можете использовать атрибут [Authorize] для типа контроллера, если хотите, чтобы он применялся ко всем действиям в этом контроллере.)

Дополнительная информация:

2 голосов
/ 13 января 2011

Попробуйте этот хитрый способ сделать это.

Добавлена ​​возможность исключать фильтры уровня контроллера из действия.

[ExcludeFilter(typeof(AuthorizeAttribute)]  
public ActionMethod DontAuthorize.....

Намного проще!

1 голос
/ 04 июня 2010

Вы могли бы также создать свой собственный атрибут AllowWithoutAuthorisation и украсить этот ActionResult им.

EDIT Это вроде не проверено, но вы не можете сделать;

[Authorize(Users="*")]

РЕДАКТИРОВАТЬ 2

Или вы можете украсить каждый ActionResult с помощью [Authorize] и пропустить тот, который вы не хотите авторизовать.

0 голосов
/ 04 июня 2010

ОК, я понял.

Я создал отдельный контроллер для этого действия и добавил элемент location в свой web.config, чтобы разрешить анонимный доступ к этому действию.

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

...