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

[譯]ASP.NET Core 2.0 網(wǎng)址重定向的方法

 更新時間:2017年10月31日 10:29:08   作者:三生石上(FineUI控件)  
本篇文章主要介紹了[譯]ASP.NET Core 2.0 網(wǎng)址重定向的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

問題

如何在ASP.NET Core 2.0中實現(xiàn)網(wǎng)址重定向?

答案

新建一個空項目,在Startup.cs文件中,配置RewriteOptions參數(shù)并添加網(wǎng)址重定向中間件(UseRewriter):

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

  var rewrite = new RewriteOptions()

    .AddRedirect("films", "movies")

    .AddRewrite("actors", "stars", true);

 

  app.UseRewriter(rewrite);

 

  app.Run(async (context) =>

  {

    var path = context.Request.Path;

    var query = context.Request.QueryString;

    await context.Response.WriteAsync($"New URL: {path}{query}");

  });

} 

運行,并在瀏覽器地址欄輸入:http://localhost:56825/films,通過客戶端調(diào)試工具觀察重定向過程:

在地址欄輸入:http://localhost:56825/actors,再次觀察重定向過程:

討論

網(wǎng)址重定向就是根據(jù)用戶自定義規(guī)則來修改請求的網(wǎng)址,目的是為了將服務器資源和瀏覽器網(wǎng)址解綁定。這樣做可能是出于安全考慮, 搜索引擎優(yōu)化(SEO),用戶友好網(wǎng)址,將HTTP重定向到HTTPS等多種目的。

當你無法使用Web服務器(IIS,Apache,Nginx)的重定向功能時,ASP.NET Core提供了一個可選項 - 請求網(wǎng)址重定向中間件。然后它的性能和功能比不上Web服務器的重定向。

重定向中間件可以做兩件事情:客戶端重定向和服務器重寫:

重定向(客戶端)

這是一個客戶端操作,工作流程如下:

1. 客戶端請求一個資源,比如 /films

2. 服務器返回301(Moved Permanently)或者302(Found)狀態(tài)碼,并在響應頭中添加Location屬性,用來指示瀏覽器請求新的地址(比如/movies)。

3. 客戶端請求新的地址,并顯示在瀏覽器的地址欄中。

重寫(服務端)

它是一個服務器端操作,工作流程如下:

1. 客戶端請求一個資源,比如 /actors

2. 服務器將其內(nèi)部映射到新的地址(比如/stars)并且返回200(OK)。

在此過程中,客戶端并不知道服務器端的內(nèi)部映射操作,因此用戶看到的瀏覽器地址欄依然顯示的是最初請求地址。

規(guī)則

重定向和重寫規(guī)則可以是正則表達式,更加詳細的信息請參考:https://docs.microsoft.com/en-gb/aspnet/core/fundamentals/url-rewriting

自定義重定向規(guī)則

我們也可以自定義重定向規(guī)則,通過一個繼承自IRule接口的類來實現(xiàn):

public class MoviesRedirectRule : IRule

{

  private readonly string[] _matchPaths;

  private readonly string _newPath;

 

  public MoviesRedirectRule(string[] matchPaths, string newPath)

  {

    _matchPaths = matchPaths;

    _newPath = newPath;

  }

 

  public void ApplyRule(RewriteContext context)

  {

    var request = context.HttpContext.Request;

 

    // 已經(jīng)是目標地址了,直接返回

    if (request.Path.StartsWithSegments(new PathString(_newPath)))

    {

      return;

    }

 

    if (_matchPaths.Contains(request.Path.Value))

    {

      var newLocation = $"{_newPath}{request.QueryString}";

 

      var response = context.HttpContext.Response;

      response.StatusCode = StatusCodes.Status302Found;

      context.Result = RuleResult.EndResponse;

      response.Headers[HeaderNames.Location] = newLocation;

    }

  }

}   

然后在Configure()中,將此自定義規(guī)則添加到RewriteOptions里面:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

  var rewrite = new RewriteOptions()

    .Add(new MoviesRedirectRule(

      matchPaths: new string[] { "/films", "/features", "/albums" },

      newPath: "/movies"));

 

 

  app.UseRewriter(rewrite);

 

  app.Run(async (context) =>

  {

    var path = context.Request.Path;

    var query = context.Request.QueryString;

    await context.Response.WriteAsync($"New URL: {path}{query}");

  });

}   

運行,在地址欄輸入:http://localhost:56825/films?id=123,觀察重定向過程:

源代碼下載

原文:https://tahirnaushad.com/2017/08/18/url-rewriting-in-asp-net-core/

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 一個簡單的文件MD5碼自動計算比較器(附源碼)

    一個簡單的文件MD5碼自動計算比較器(附源碼)

    一直在玩 WOW ,發(fā)現(xiàn)網(wǎng)上的 MD5 計算工具都沒有自動比較功能,每次下載更新計算后,都要自己一個一個字母核對,比較麻煩。 最近開始學習 C# ,用 .NET ,做了一個簡單的文件MD5碼自動計算比較器。
    2013-02-02
  • 淺談ASP.NET Core 中jwt授權認證的流程原理

    淺談ASP.NET Core 中jwt授權認證的流程原理

    這篇文章主要介紹了淺談ASP.NET Core 中jwt授權認證的流程原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • ASP.NET 網(wǎng)站開發(fā)中常用到的廣告效果代碼

    ASP.NET 網(wǎng)站開發(fā)中常用到的廣告效果代碼

    在ASP.NET項目開發(fā)中,會被要求添加廣告,有翻屏效果、有廣告輪流顯示、飄浮廣告、左側廣告、右側廣告等。
    2010-04-04
  • ASP.NET?Core6.0-wwwroot文件夾無法訪問解決方法

    ASP.NET?Core6.0-wwwroot文件夾無法訪問解決方法

    ASP.NET?Core項目中的wwwroot文件夾被視為Web根文件夾,本文主要介紹了ASP.NET?Core6.0-wwwroot文件夾無法訪問解決方法,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • ASP.NET Core 6.0 中使用Autofac的項目實踐

    ASP.NET Core 6.0 中使用Autofac的項目實踐

    本文主要介紹了ASP.NET Core 6.0 中使用Autofac的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • 查看Json輸出的*最方便*的方法 (轉)

    查看Json輸出的*最方便*的方法 (轉)

    項目的表現(xiàn)層使用MVC+Extjs。在開發(fā)過程中,一旦頁面顯示不正常,第一個需要排查的總是“Action是否輸出了正確的Json?”。
    2009-11-11
  • 獲取App.config配置文件中的參數(shù)值

    獲取App.config配置文件中的參數(shù)值

    這篇文章介紹了獲取app.config配置文件中的參數(shù)值方法,首先是要添加System.Configuration引用,其次類文件中必須有 using System.Configuration;再次App.config添加,最后向App.config配置文件添加參數(shù),下面通過列子給大家講解下,需要的朋友可以參考下
    2015-07-07
  • Asp.Net Core對接釘釘群機器人的完整步驟記錄

    Asp.Net Core對接釘釘群機器人的完整步驟記錄

    這篇文章主要給大家介紹了關于Asp.Net Core對接釘釘群機器人的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Silverlight融合ajax實現(xiàn)前后臺數(shù)據(jù)交互

    Silverlight融合ajax實現(xiàn)前后臺數(shù)據(jù)交互

    兩年前Silverlight 還未起名,故事發(fā)生在WPF/E 的年代里。07年8月在中軟實習時,我承擔起了在. Net 中嵌入WPF/E 的任務,目的是增強用戶體驗。
    2009-05-05
  • ASP.NET調(diào)用WebService服務的方法詳解

    ASP.NET調(diào)用WebService服務的方法詳解

    這篇文章主要介紹了ASP.NET調(diào)用WebService服務的方法,較為詳細的分析了WebService服務的功能,創(chuàng)建步驟與使用方法,需要的朋友可以參考下
    2016-05-05

最新評論

诸暨市| 堆龙德庆县| 北安市| 贵南县| 奉贤区| 嘉祥县| 襄汾县| 宁城县| 铜陵市| 福清市| 德州市| 新郑市| 钦州市| 隆安县| 珠海市| 永兴县| 长乐市| 阳泉市| 望都县| 嘉兴市| 芮城县| 景泰县| 岑巩县| 云安县| 苗栗县| 龙川县| 涡阳县| 敖汉旗| 方城县| 北辰区| 苍梧县| 吉木萨尔县| 香格里拉县| 庆阳市| 濮阳市| 巨鹿县| 鹤峰县| 体育| 五寨县| 宁德市| 凌云县|