ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.Net5 之 IHttpContextAccessor注册

2021-01-16 22:04:30  阅读:184  来源: 互联网

标签:IHttpContextAccessor app HttpContext IApplicationBuilder static 注册 Net5 public


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 中 大量使用扩展方法, 这样方便操作, 且扩展性更强.

标签:IHttpContextAccessor,app,HttpContext,IApplicationBuilder,static,注册,Net5,public
来源: https://www.cnblogs.com/lsb123/p/14287471.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有