Как отключить анти-подделку CSRF в Razor Pages - PullRequest
1 голос
/ 01 июля 2019

Я хочу отключить проверки CSRF при работе под TestServer, чтобы мне не приходилось читать и отправлять токен при выполнении автоматических тестов.

Из-за обилия «полезной магии», проникающей в ASP.NET Core, я застрял.

Нет ничего в коде шаблона, который явно добавляет это, и все же просмотр фильтров в отладчике во время этого вызова services.AddMvc(options => options.Filters) не показывает глобального фильтра.

Этот код также не работает.

mvcOptions.Filters.Add<IgnoreAntiforgeryTokenAttribute>(0);

И Antiforgery.Options не имеет опции отключения.

Как я могу это сделать?

1 Ответ

1 голос
/ 01 июля 2019

Попробуйте это:

services.AddMvc().AddRazorPagesOptions(o =>
{
    o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});

Вы также можете игнорировать это в PageModel:

[IgnoreAntiforgeryToken(Order = 1001)]
public class IndexModel : PageModel

Относительно параметра Order: встроенный [ValidateAntiforgeryToken] декоратор имеет порядок 1000, поэтому настройка [IgnoreAntiforgeryToken] на 1001 переопределит его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...