最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET Core 2.0中Razor頁面禁用防偽令牌驗證

 更新時間:2018年01月31日 08:59:33   作者:Sweet-Tang  
在這篇短文中,我將向您介紹如何ASP.NET Core2.0 Razor頁面中禁用防偽令牌驗證,對此有興趣的朋友參考學習下吧。

在這篇短文中,我將向您介紹如何ASP.NET Core Razor頁面中禁用防偽令牌驗證。

Razor頁面是ASP.NET Core 2.0中增加的一個頁面控制器框架,用于構(gòu)建動態(tài)的、數(shù)據(jù)驅(qū)動的網(wǎng)站;支持跨平臺開發(fā),可以部署到Windows,Unix和Mac操作系統(tǒng)。

跨站點請求偽造(也稱為XSRF或CSRF)是對Web托管應(yīng)用程序的攻擊,因為惡意網(wǎng)站可能會影響客戶端瀏覽器和瀏覽器信任網(wǎng)站之間的交互。這種攻擊是完全有可能的,因為Web瀏覽器會自動在每一個請求中發(fā)送某些身份驗證令牌到請求網(wǎng)站。這種攻擊形式也被稱為 一鍵式攻擊 或 會話控制,因為攻擊利用了用戶以前認證的會話。關(guān)于這個話題可以看我的另一篇博客:ASP.NET Core 防止跨站請求偽造(XSRF/CSRF)攻擊。

Razor頁面被設(shè)計為默認啟動防跨站請求偽造攻擊的,防偽令牌生成和驗證被自動包含在Razor頁面中。但是,在某些情況下,您可能想禁用它。

全局禁用

要在Razor頁面中全局禁用防偽令牌驗證,可以在Startup類的ConfigureServices方法中禁用:

public void ConfigureServices(IServiceCollection services)
 {
  services.AddMvc().AddRazorPagesOptions(o=>
  {
   o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
  });
 }

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

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

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);
 }

部分禁用

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

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

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

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

2、在PageModel上面使用標記:

[IgnoreAntiforgeryToken(Order = 1001)]
 public class DemoModel : PageModel
 {
  public void OnPost()
  {

  }
 }

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

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

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

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

相關(guān)文章

最新評論

萨嘎县| 建湖县| 四平市| 墨竹工卡县| 高雄县| 怀安县| 津市市| 正阳县| 濮阳县| 澄城县| 潜山县| 三亚市| 灵石县| 靖江市| 隆德县| 霍邱县| 竹北市| 大荔县| 昭觉县| 东源县| 普兰县| 海口市| 九寨沟县| 乐亭县| 石柱| 循化| 夏邑县| 靖西县| 沈丘县| 松溪县| 宜州市| 清河县| 宣汉县| 德钦县| 剑河县| 太谷县| 达尔| 嘉峪关市| 奉节县| 乐陵市| 民权县|