.Net5 之 IHttpContextAccessor注冊


IHttpContextAccessor注冊及使用

  1. 一般情況下我們需要通過HttpContext 來獲取當前用戶請求服務器得到認證的信息.
  2. 在.Net5中如果要使用HttpContext需要先在容器中注冊.
public void ConfigureServices(IServiceCollection services)
{
      services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
  1. 然后使用, 但是為了方便操作, 一般會建一個靜態類, 用靜態的方式獲取該服務.
public static class StaticHttpContextExtensions
{
 public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app)
        {
            var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>();
           Utilities.HttpContext.Configure(httpContextAccessor);
            return app;
        }
}

  1. 使用
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
      app.UseStaticHttpContext();
}

  1. 在具體使用使用的時候, 可以通過構造函數, 或者屬性等方式獲取到實體, 這里以屬性舉例
 private static Microsoft.AspNetCore.Http.HttpContext Context
        {
            get
            {
                return Utilities.HttpContext.Current;
            }
        }
  1. 總結: 在.Net Core 和最新的.Net5 中 大量使用擴展方法, 這樣方便操作, 且擴展性更強.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM