public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app)
    {
        var httpContextAccessor = app.ApplicationServices.GetRequiredService <IHttpContextAccessor>();

        HttpContextExt.Configure(httpContextAccessor);
        return(app);
    }
Beispiel #2
0
        /// <summary>
        /// 使用HttpContextExt,需要先注入HttpContextAccessor
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseHttpContextExt(this IApplicationBuilder builder)
        {
            var httpContextAccessor = builder.ApplicationServices.GetRequiredService <IHttpContextAccessor>();

            HttpContextExt.Configure(httpContextAccessor);
            return(builder);
        }
        public override async Task AuthenticationCheck(string routePath)
        {
            var authMethod = AuthenticationMethods.FirstOrDefault(x => x.Path.Equals(routePath));

            if (authMethod != null)
            {
                var token       = HttpContextExt.Current.Headers.FirstOrDefault(x => x.Key == "Authentication").Value;
                var accountInfo = await GetAccountInfo(HttpContextExt.Current.RequestService.Resolve <IStateManager>());

                HttpContextExt.SetUser(accountInfo);
                if (!HttpContextExt.Current.User.IgnorePermission && authMethod.CheckPermission && !HttpContextExt.Current.GetAuthIgnore() && HttpContextExt.Current.User.Permissions != null && !HttpContextExt.Current.User.Permissions.Contains(routePath))
                {
                    throw new InfrastructureException("当前登录用户缺少使用该接口的必要权限,请重试!");
                }
            }
        }
Beispiel #4
0
 public static void ContextHandler(OxygenHttpContextWapper oxygenHttpContext)
 {
     HttpContextExt.SetCurrent(oxygenHttpContext);//注入http上下文给本地业务上下文对象
 }