asp.net-core-mvc – Html.AntiForgeryToken()仍然需要?
发布时间:2020-12-15 23:10:55 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET .NET4.6 vNext中仍然需要@ Html.AntiForgeryToken()? 表单装饰已更改为 form asp-controller="Account" asp-action="Login" asp-route-returnurl="@ViewBag.ReturnUrl" method="post" class="form-horizontal" role="form" 由此 @using (Html.Beg
在ASP.NET .NET4.6 vNext中仍然需要@
Html.AntiForgeryToken()?
表单装饰已更改为 <form asp-controller="Account" asp-action="Login" asp-route-returnurl="@ViewBag.ReturnUrl" method="post" class="form-horizontal" role="form"> 由此 @using (Html.BeginForm("Login","Account",new { ReturnUrl = ViewBag.ReturnUrl },FormMethod.Post,new { @class = "",role = "form" })) 不再包含这个 @Html.AntiForgeryToken() 控制器操作仍然按照预期标记有ValidateAntiForgeryToken属性,但是它来自哪里?自动的? [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<IActionResult> Login(LoginViewModel model,string returnUrl = null) 解决方法
表单标签助手将自动添加防伪令牌. (除非您将其用作标准的html表单元素,手动添加操作属性).检查
form tag helper的源代码,您将在Process方法的末尾看到以下内容.
if (Antiforgery ?? antiforgeryDefault) { var antiforgeryTag = Generator.GenerateAntiforgery(ViewContext); if (antiforgeryTag != null) { output.PostContent.AppendHtml(antiforgeryTag); } } 如果您检查登录页面的html,您将在窗体中看到以下隐藏的输入: <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIeHClDdT9..."> 您还可以手动启用/禁用它添加了asp-antimorgery属性: <form asp-controller="Account" asp-action="Register" asp-antiforgery="false" method="post" class="form-horizontal" role="form"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- IIS是否记录请求标头信息?如果是的话,在哪里?
- asp.net – IIS 7在一个服务器上引发web.config的“重复部分
- asp.net-mvc – ASP.Net MVC 3 – HandleError属性中的顺序
- ASP.NET Web API 强势入门指南
- asp.net – Telerik RadGrid – 如何默认编辑模式?
- ASP.Net C#MVC5 Razor查看XML站点地图
- .Net Core微服务入门全纪录(一)——项目搭建
- asp.net – DropDownList烦恼:相同的值不会触发事件
- asp.net – 从Web页面录制音频
- asp.net – 多租户应用程序的输出缓存,因主机名和文化而异