在读取表单之前验证请求中的“IAntiforgeryValidationFeature”

问题描述 投票:0回答:1

我有一个使用 asp.net core 身份设置的 Blazor 服务器 Web 应用程序,当我登录时一切正常,但如果我注销,则会收到此错误:

处理请求时发生未处理的异常。 InvalidOperationException:正在使用无效的防伪令牌访问此表单。在阅读表格之前,请验证请求中的

IAntiforgeryValidationFeature
。 Microsoft.AspNetCore.Http.Features.FormFeature.HandleUncheckedAntiforgeryValidationFeature()

堆栈查询 Cookie 标头路由 InvalidOperationException:正在使用无效的防伪令牌访问此表单。在阅读表格之前,请验证请求中的

IAntiforgeryValidationFeature
。 Microsoft.AspNetCore.Http.Features.FormFeature.HandleUncheckedAntiforgeryValidationFeature() Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm() lambda_method77(闭包,对象,HttpContext,对象) Microsoft.AspNetCore.Http.RequestDelegateFactory+<>c__DisplayClass104_2+d.MoveNext() Microsoft.AspNetCore.Antiforgery.Internal.AntiforgeryMiddleware.InvokeAwaited(HttpContext上下文) Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext上下文) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext上下文) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext上下文)

我尝试将 @Html.AntiForgeryToken() 添加到表单中,尽管它无法识别@Hmtml

asp.net blazor blazor-server-side asp.net-core-identity
1个回答
0
投票

Blazor 端点现在默认需要防伪保护。你 可以使用新的防伪中间件启用防伪支持 并使用 AntiforgeryToken 组件生成令牌 呈现的形式。 EditForm 组件将添加防伪令牌 自动为您服务。

添加 AntiforgeryToken 组件,例如:

   <form>
        <AntiforgeryToken />
    </form>

并添加

@using Microsoft.AspNetCore.Antiforgery;
@attribute [RequireAntiforgeryToken]

此外,尝试将

app.UseAntiforgery()
设置在
app.UseAuthentication()
之后。

你可以看看Blazor 防伪集成了解更多。

© www.soinside.com 2019 - 2024. All rights reserved.