.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