Исключение действия из авторизации в ASP.NET MVC 2

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

5 ответов

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

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

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

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

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

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

Намного легче!

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

РЕДАКТИРОВАТЬ Это вроде не проверено, но вы не могли сделать;

[Authorize(Users="*")]

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

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

ОК, я понял

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

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

Добавление атрибута [AllowAnonymous] к методу (по рекомендации Джереми) также помогло мне.

Другие вопросы по тегам