2016-11-10 2 views
0

Если метод действия HttpGet имеет фильтр авторизации, нужен ли соответствующий HttpPost? Метод действия HttpPost защищен с помощью ValidateAntiForgeryToken и привязки данных. Любой пользователь должен быть аутентифицирован через ldap.asp.net mvc5 custom authorization on HttpPost

[HttpGet] 
[CustomAuthorization("Admin", "User")] 
public ViewResult MyMethod(){} 


[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult MyMethod([Bind(Include = "Vars")] Model model){} 
+0

В чем вопрос - нужно ли применять фильтр авторизации для сообщений? Да. – Nikkster

+0

Да, нужен ли HttpPost фильтр auth – MinchMeister

ответ

0

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

ValidateAntiForgeryToken ничего не делает с аутентификацией. Он просто проверяет, что токен из HTML равен маркеру из файла cookie. Вы можете узнать больше об этом, но в основном это защита от атаки CSRF, а не для аутентификации пользователей.

0

Да, если в этом случае пользователям необходимо разрешить отправлять запросы на почту в MyMethod, у него также должен быть фильтр авторизации.

Когда вы, например, переходите к маршрутам URL/{controller}/MyMethod/MVC к вашему действию MyMethod, объявленному атрибутом HttpGet, и применяете любые фильтры auth и т. Д. То же самое касается запроса POST, и в этом случае вызов перенаправляется на другое действие, связанное с HttpPost, и запускает любые фильтры.