Исключение действия из авторизации в ASP.NET MVC 2
Я использую проверку подлинности форм в моем приложении ASP.NET MVC. Я хочу на страницу регистрации из процесса авторизации. Я знаю, что могу добавить тег местоположения в свой основной файл web.config или создать новый файл web.config внутри определенной папки. Но я просто исключаю одно конкретное действие в пользовательском контроллере. Как мне это сделать?
5 ответов
Не используйте Web.config
Вместо этого используйте атрибут [Authorize], чтобы контролировать, кто имеет доступ к определенным контроллерам или действиям. (Вы можете использовать атрибут [Authorize] для типа контроллера, если хотите, чтобы он применялся ко всем действиям в этом контроллере.)
Дополнительная информация:
Попробуйте этот приятный способ сделать это.
Он добавляет возможность исключать фильтры уровня контроллера из действия.
[ExcludeFilter(typeof(AuthorizeAttribute)]
public ActionMethod DontAuthorize.....
Намного легче!
Вы могли бы также создать свой собственный атрибут AllowWithoutAuthorisation и украсить его с помощью ActionResult.
РЕДАКТИРОВАТЬ Это вроде не проверено, но вы не могли сделать;
[Authorize(Users="*")]
РЕДАКТИРОВАТЬ 2
Или вы можете украсить каждый ActionResult с помощью [Authorize] и опустить тот, который вы не хотите авторизовать.
ОК, я понял
Я создал отдельный контроллер для этого действия и добавил элемент location в свой файл web.config, чтобы разрешить анонимный доступ к этому действию.
Это позволит весь доступ к этому контроллеру без аутентификации.
Добавление атрибута [AllowAnonymous] к методу (по рекомендации Джереми) также помогло мне.