Я хочу проверить токен AntiForgery в приложении ASP.NET Core. Я знаю, что я могу по отдельности сделать это путем добавления [AutoValidateAntiforgeryToken]
или [ValidateAntiforgeryToken]
атрибутов по методам действий, как предложено в SO размещать hereПроверка маркера AntiForgery глобально в ASP.NET Core
Я ищу глобальный подход для проверки маркеров для всех методов POST. Поэтому я создал промежуточное ПО для этого. Однако я не смог найти подходящий метод для проверки токена. Как и в классическом asp.net, есть AntiForgery.Validate()
. Что эквивалентный метод в ASP.NET Ядра
public class ValidateAntiForgeryTokenMiddleware
{
private readonly RequestDelegate _next;
public ValidateAntiForgeryTokenMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
if (httpContext.Request.Method.ToUpper() == "POST")
{
// where does this mehod exists?
// i could not find it in Microsoft.AspNetCore.Antiforgery namespace
AntiForgery.Validate();
}
await _next(httpContext);
}
}
public static class ValidateAntiForgeryTokenMiddlewareExtensions
{
public static IApplicationBuilder UseValidateAntiForgeryToken(this IApplicationBuilder builder)
{
return builder.UseMiddleware<ValidateAntiForgeryTokenMiddleware>();
}
}