public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app) { var httpContextAccessor = app.ApplicationServices.GetRequiredService <IHttpContextAccessor>(); HttpContextExt.Configure(httpContextAccessor); return(app); }
/// <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("当前登录用户缺少使用该接口的必要权限,请重试!"); } } }
public static void ContextHandler(OxygenHttpContextWapper oxygenHttpContext) { HttpContextExt.SetCurrent(oxygenHttpContext);//注入http上下文给本地业务上下文对象 }