我有一个使用 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+我尝试将 @Html.AntiForgeryToken() 添加到表单中,尽管它无法识别@Hmtml
Blazor 端点现在默认需要防伪保护。你 可以使用新的防伪中间件启用防伪支持 并使用 AntiforgeryToken 组件生成令牌 呈现的形式。 EditForm 组件将添加防伪令牌 自动为您服务。
添加 AntiforgeryToken 组件,例如:
<form>
<AntiforgeryToken />
</form>
并添加
@using Microsoft.AspNetCore.Antiforgery;
@attribute [RequireAntiforgeryToken]
此外,尝试将
app.UseAntiforgery()
设置在app.UseAuthentication()
之后。
你可以看看Blazor 防伪集成了解更多。