c# – ASP.NET Core MVC项目似乎会自动添加AntiForgery令牌?
发布时间:2020-12-15 23:48:15 所属栏目:百科 来源:网络整理
导读:使用由最新(RC2)VS2015 ASP.NET Core模板创建的开箱即用的MVC应用程序,文件_LoginPartial.cshtml在共享的_Layout.cshtml文件中呈现为部分. _LoginPartial具有以下内容: @using Microsoft.AspNetCore.Identity@using CodeServer.Models@inject SignInManager
使用由最新(RC2)VS2015 ASP.NET Core模板创建的开箱即用的MVC应用程序,文件_LoginPartial.cshtml在共享的_Layout.cshtml文件中呈现为部分. _LoginPartial具有以下内容:
@using Microsoft.AspNetCore.Identity @using CodeServer.Models @inject SignInManager<ApplicationUser> SignInManager @inject UserManager<ApplicationUser> UserManager @if (SignInManager.IsSignedIn(User)) { <form asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right"> <ul class="nav navbar-nav navbar-right"> <li> <a asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a> </li> <li> <button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button> </li> </ul> </form> } else { <ul class="nav navbar-nav navbar-right"> <li><a asp-controller="Account" asp-action="Login">Log in</a></li> </ul> } 当它被渲染到页面中时,这是结果(来自视图源): <form method="post" id="logoutForm" class="navbar-right" action="/Account/LogOff"> <ul class="nav navbar-nav navbar-right"> <li> <a title="Manage" href="/Manage">Hello user@email.com!</a> </li> <li> <button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button> </li> </ul> <input name="__RequestVerificationToken" type="hidden" value="..." /></form> 不要对ASP.NET不感兴趣,但那个令牌是如何进入的呢?我还在AntiForgery上为整个解决方案创建了一个find-in-files,唯一的命中是[ValidateAntiForgeryToken]标签或project.lock.json中的条目. 我想通过故意在请求中省略令牌来验证我的验证标签是否正常工作,但是当为我添加令牌(?)时我无法做到这一点. 解决方法
您看到的防伪令牌是自动生成的,并在 您可以通过添加asp-antiforgery =“false”属性来禁用此自动功能: <form asp-controller="Account" asp-action="LogOff" asp-antiforgery="false" method="post" id="logoutForm" class="navbar-right"> </form> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |