日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core Razor页面禁用防伪令牌验证

發布時間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core 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 IgnoreAntiforgeryTokenAttribute());});}

這將關閉整個應用程序的防偽令牌驗證。請注意,禁用防偽令牌驗證不會阻止生成隱藏字段或cookie。它只是跳過驗證過程。

我們知道防偽令牌是通過FormTagHelper生成的,好在ASP.NET Core MVC提供了全局設置標簽助手的方法:

? ?public void ConfigureServices(IServiceCollection services) ? ?{services.AddMvc().InitializeTagHelper<FormTagHelper>((helper, context) => helper.Antiforgery = false);}

所以全局禁用防偽令牌驗證的完整代碼如下:

? ?public void ConfigureServices(IServiceCollection services) ? ?{services.AddMvc().AddRazorPagesOptions(o=>{o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());}).InitializeTagHelper<FormTagHelper>((helper, context) => helper.Antiforgery = false);}

部分禁用

如果您希望僅禁用特定方法或頁面模型的驗證,包括如下兩個方法:

  • 在Startup類的ConfigureServices方法進行配置,不過要提供頁面的路徑:

    ? ? ? ?public void ConfigureServices(IServiceCollection services) ?
    ? ? ? ?{services.AddMvc().AddRazorPagesOptions(opotions =>{opotions.Conventions.AddPageApplicationModelConvention("/demo",pageApplicationModel => pageApplicationModel.Filters.Add(new IgnoreAntiforgeryTokenAttribute()));});}

    在此處,我們禁用了?demo?頁面的防偽令牌驗證。

  • 在PageModel上面使用標記:

    ? ?[IgnoreAntiforgeryToken(Order = 1001)]

    ? ?public class DemoModel : PageModel{ ? ? ? ?
    ? ?public void OnPost() ? ? ? ?{}}

    ValidateAntiForgeryToken標記默認的Order屬性為1000,因此IgnoreAntiforgeryToken屬性需要一個更高的序號。

  • 上面我們已經說過了禁用防偽令牌驗證不會阻止生成隱藏字段或cookie,所以需要禁用FormTagHelper生成令牌。

    ? ?<form method="post" asp-antiforgery="false"></form>

    關于這個話題就介紹完了,如果您感興趣,不防測試一下。

    相關文章:?

    • .NET Core 2.0 正式發布信息匯總

    • .NET Standard 2.0 特性介紹和使用指南

    • .NET Core 2.0 的dll實時更新、https、依賴包變更問題及解決

    • .NET Core 2.0 特性介紹和使用指南

    • Entity Framework Core 2.0 新特性

    • 體驗 PHP under .NET Core

    • .NET Core 2.0使用NLog

    • 升級項目到.NET Core 2.0,在Linux上安裝Docker,并成功部署

    • 解決Visual Studio For Mac Restore失敗的問題

    • ASP.NET Core 2.0 特性介紹和使用指南

    • .Net Core下通過Proxy 模式 使用 WCF

    • .NET Core 2.0 開源Office組件 NPOI

    • ASP.NET Core Razor頁面 vs MVC

    • Razor Page–Asp.Net Core 2.0新功能 ?Razor Page介紹

    • MySql 使用 EF Core 2.0 CodeFirst、DbFirst、數據庫遷移(Migration)介紹及示例

    • .NET Core 2.0遷移技巧之web.config配置文件

    • asp.net core MVC 過濾器之ExceptionFilter過濾器(一)

    • ASP.NET Core 使用Cookie驗證身份

    • ASP.NET Core MVC – Tag Helpers 介紹

    • ASP.NET Core MVC – Caching Tag Helpers

    • ASP.NET Core MVC – Form Tag Helpers

    • ASP.NET Core MVC – 自定義 Tag Helpers

    • ASP.NET Core MVC – Tag Helper 組件

    • ASP.Net Core Razor 頁面路由

    原文地址:https://www.cnblogs.com/tdfblog/p/disable-antiforgery-token-validation-in-asp-net-core-razor-page.html


    .NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注


    總結

    以上是生活随笔為你收集整理的ASP.NET Core Razor页面禁用防伪令牌验证的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。