ASP.NET Core 2.0中Razor页面禁用防伪令牌验证
在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证。
Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的、数据驱动的网站;支持跨平台开发,可以部署到Windows,Unix和Mac操作系统。
跨站点请求伪造(也称为XSRF或CSRF)是对Web托管应用程序的攻击,因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互。这种攻击是完全有可能的,因为Web浏览器会自动在每一个请求中发送某些身份验证令牌到请求网站。这种攻击形式也被称为 一键式攻击 或 会话控制,因为攻击利用了用户以前认证的会话。关于这个话题可以看我的另一篇博客ASP.NET Core 防止跨站请求伪造(XSRF/CSRF)攻击。
Razor页面被设计为默认启动防跨站请求伪造攻击的,防伪令牌生成和验证被自动包含在Razor页面中。,在某些情况下,您可能想禁用它。
全局禁用
要在Razor页面中全局禁用防伪令牌验证,可以在Startup类的ConfigureServices方法中禁用
public void ConfigureServices(IServiceCollection services) { services.AddMvc().AddRazorPagesOptions(o=> { o.Conventions.ConfigureFilter(new IgnoreAntiferyTokenAttribute()); }); }
这将关闭整个应用程序的防伪令牌验证。请注意,禁用防伪令牌验证不会阻止生成隐藏字段或cookie。它只是跳过验证过程。
我们知道防伪令牌是通过FormTagHelper生成的,好在ASP.NET Core MVC提供了全局设置标签助手的方法
public void ConfigureServices(IServiceCollection services) { services.AddMvc().InitializeTagHelper<FormTagHelper>((helper, context) => helper.Antifery = false); }
所以全局禁用防伪令牌验证的完整代码如下
public void ConfigureServices(IServiceCollection services) { services.AddMvc().AddRazorPagesOptions(o=> { o.Conventions.ConfigureFilter(new IgnoreAntiferyTokenAttribute()); }).InitializeTagHelper<FormTagHelper>((helper, context) => helper.Antifery = false); }
部分禁用
如果您希望仅禁用特定方法或页面模型的验证,包括如下两个方法
1、在Startup类的ConfigureServices方法进行配置,不过要提供页面的路径
public void ConfigureServices(IServiceCollection services) { services.AddMvc().AddRazorPagesOptions(opotions => { opotions.Conventions.AddPageApplicationModelConvention("/demo", pageApplicationModel => pageApplicationModel.Filters.Add(new IgnoreAntiferyTokenAttribute())); }); }
在此处,我们禁用了 demo 页面的防伪令牌验证。
2、在PageModel上面使用标记
[IgnoreAntiferyToken(Order = 1001)] public class DemoModel : PageModel { public void OnPost() { } }
ValidateAntiFeryToken标记默认的Order属性为1000,IgnoreAntiferyToken属性需要一个更高的序号。
上面我们已经说过了禁用防伪令牌验证不会阻止生成隐藏字段或cookie,所以需要禁用FormTagHelper生成令牌。
<form method="post" asp-antifery="false"> </form>
关于这个话题就介绍完了,如果您感兴趣,不防测试一下。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程