protected void Application_Start() { Application["OnLineCount"] = 0;//在应用程序第一次启动时初始化在线人数为0 AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); //log4net配置信息 log4net.Config.XmlConfigurator.Configure(); var httpContextProvider = new HttpContextProvider(HttpContext.Current); var controllers = new[] { typeof(ZLERP.Web.Controllers.HomeController) }; var includeHandlingSettings = (IIncludeHandlingSettings)ConfigurationManager.GetSection("includeHandling"); DependencyResolver.SetResolver(new QnDDepResolver(httpContextProvider, includeHandlingSettings, controllers)); //注册自定义的模型验证 //暂时没起到作用,不需要 by:Sky 2012/03/14 // DataAnnotationsModelValidatorProvider.RegisterAdapterFactory(typeof(RequiredAttribute), (m, c, a) => new MyRequiredAttributeAdapter(m, c, (RequiredAttribute)a)); //初始化uowfactory IUnitOfWorkFactory factory = new UnitOfWorkFactory(); factory.Configuration(); }
public void HttpContextProviderConstructor() { var correlationId = new StringValues("CorrelationId1"); var forwardedFor = new StringValues("SomeForwardedForValue1"); var path = new StringValues("SomePathValue1"); var referrer = new Uri("http://SomeReferrerValue1"); var remoteIpAddress = "10.0.0.1"; var requestMethod = "SomeRequestMethodValue1"; var userAgent = new StringValues("SomeUserAgentValue1"); var accessorMock = SetUpFullHttpContextAccessor(correlationId, forwardedFor, path, referrer, remoteIpAddress, requestMethod, userAgent); var contextProvider = new HttpContextProvider(accessorMock.Object); contextProvider.ContextProviders.First(p => p is CorrelationIdContextProvider) .As <CorrelationIdContextProvider>().Accessor.CorrelationId.Should().Be(correlationId); contextProvider.ContextProviders.First(p => p is ForwardedForContextProvider) .As <ForwardedForContextProvider>().ForwardedFor.Should().BeEquivalentTo(forwardedFor); contextProvider.ContextProviders.First(p => p is PathContextProvider) .As <PathContextProvider>().Path.Should().Be(path); contextProvider.ContextProviders.First(p => p is ReferrerContextProvider) .As <ReferrerContextProvider>().Referrer.Should().Be(referrer); contextProvider.ContextProviders.First(p => p is RemoteIpAddressContextProvider) .As <RemoteIpAddressContextProvider>().RemoteIpAddress.ToString().Should().Be(remoteIpAddress); contextProvider.ContextProviders.First(p => p is RequestMethodContextProvider) .As <RequestMethodContextProvider>().RequestMethod.Should().Be(requestMethod); contextProvider.ContextProviders.First(p => p is UserAgentContextProvider) .As <UserAgentContextProvider>().UserAgent.Should().Be(userAgent); }
public void HttpContextProviderAddContext() { var correlationId = "CorrelationId1"; var forwardedFor = "SomeForwardedForValue1"; var path = "SomePathValue1"; var referrer = new Uri("http://SomeReferrerValue1"); var remoteIpAddress = "10.0.0.1"; var requestMethod = "SomeRequestMethodValue1"; var userAgent = "SomeUserAgentValue1"; var accessorMock = SetUpFullHttpContextAccessor(correlationId, forwardedFor, path, referrer, remoteIpAddress, requestMethod, userAgent); var contextProvider = new HttpContextProvider(accessorMock.Object); var logEntry = new LogEntry(); contextProvider.AddContext(logEntry); logEntry.CorrelationId.Should().Be(correlationId); logEntry.ExtendedProperties["X-Forwarded-For"].Should().Be(forwardedFor); logEntry.ExtendedProperties["Path"].Should().Be(path); logEntry.ExtendedProperties["Referrer"].Should().Be(referrer.ToString()); logEntry.ExtendedProperties["RemoteIpAddress"].Should().Be(remoteIpAddress); logEntry.ExtendedProperties["Method"].Should().Be(requestMethod.ToUpperInvariant()); logEntry.ExtendedProperties["UserAgent"].Should().Be(userAgent); }
public void ShouldThrowNotSupportedExceptionForOtherThanRequestInitializationContextTypeOfContexts() { HttpContextProvider provider = new HttpContextProvider(); Assert.ThrowsDelegate action = () => provider.SetInitializationContext(new object()); Assert.Throws <NotSupportedException>(action); }
public LandingController() { _routes = new Routes(); var contextProvider = new HttpContextProvider(); _authApi = new AuthApi(contextProvider); _usersApi = new UsersApi(contextProvider); _appActionsApi = new AppActionsApi(contextProvider); }
public static IApplicationBuilder UseGlobalHttpContext(this IApplicationBuilder app) { var httpContextAccessor = app.ApplicationServices.GetRequiredService <IHttpContextAccessor>(); var serviceScopeFactory = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>(); HttpContextProvider.ConfigureAccessor(httpContextAccessor, serviceScopeFactory); return(app); }
public PostLoginController() { _routes = new Routes(); var contextProvider = new HttpContextProvider(); _usersApi = new UsersApi(contextProvider); _createCatalogFlow = new CreateCatalogFlow(contextProvider, new CookieStateProvider()); _applicationSettings = new ApplicationSettings(); _appLinksApi = new AppLinksApi(); }
protected void Application_Start() { RegisterRoutes(RouteTable.Routes); var httpContextProvider = new HttpContextProvider(HttpContext.Current); var controllers = new [] { typeof(HomeController), typeof(AccountController) }; var includeHandlingSettings = (IIncludeHandlingSettings)ConfigurationManager.GetSection("includeHandling"); DependencyResolver.InitializeWith(new QnDDepResolver(httpContextProvider, includeHandlingSettings, controllers)); ControllerBuilder.Current.SetControllerFactory(new IoCControllerFactory()); }
public static MultitenancyOptionsBuilder <TTenant> AddOwin <TTenant>(this MultitenancyOptionsBuilder <TTenant> builder) where TTenant : class { // this service will only work when // IAppBuilder.UseRequestScopeContext() middleware has been activated. var provider = new HttpContextProvider(); builder.HttpContextProvider = provider; builder.Services.AddSingleton <IHttpContextProvider>(provider); return(builder); }
public void ShouldSetAndRestoreHttpContextFromInitializationContext() { HttpContext.Current = null; HttpContext httpContext = new HttpContext(new HttpRequest(string.Empty, "http://url", string.Empty), new HttpResponse(new StringWriter())); using (HttpContextProvider provider = new HttpContextProvider()) { provider.SetInitializationContext(new RequestInitializationContext(new Request(), new Response()) { HttpContext = httpContext }); Assert.Equal(httpContext, HttpContext.Current); } Assert.Null(HttpContext.Current); }
public static MultitenancyOptionsBuilder <TTenant> AddAspNetCore <TTenant>(this MultitenancyOptionsBuilder <TTenant> builder) where TTenant : class { var httpContextAccesser = builder.Services.FindServiceInstance <IHttpContextAccessor>(); if (httpContextAccesser == null) { httpContextAccesser = new HttpContextAccessor(); builder.Services.AddSingleton <IHttpContextAccessor>(httpContextAccesser); } var provider = new HttpContextProvider(httpContextAccesser); builder.HttpContextProvider = provider; builder.Services.AddSingleton <IHttpContextProvider>(provider); return(builder); }
private WebAuditData GetWebAuditData(int applicationId, string lang, int?RelatedRecordId, string assignedCode, string code, string data) { HttpContextProvider.Capture(); var httpContext = HttpContextProvider.Get(); return(new WebAuditData { ApplicationId = applicationId, UserName = httpContext.User.Identity.Name, RoleName = httpContext.User.Identity.GetRoleName(), Lang = (string.IsNullOrEmpty(lang) ? httpContext.Items["Lang"]?.ToString() : lang), RelatedRecordId = RelatedRecordId, IP = httpContext.Request.GetClientIpAddress(), BrowserName = httpContext.Request.Browser.Browser, BrowserVersion = httpContext.Request.Browser.Version, SessionId = httpContext.Session.SessionID, AssignedCode = assignedCode, Code = code, Data = data }); }
/// <summary> /// 格式化 最终输出到elk的核心部分 /// </summary> /// <param name="logEvent"></param> /// <param name="output"></param> private static void FormatContent(LogEvent logEvent, TextWriter output) { if (logEvent == null) { throw new ArgumentNullException(nameof(logEvent)); } if (output == null) { throw new ArgumentNullException(nameof(output)); } output.Write('{'); // 读取相关配置 var logConfigRootDTOInfo = JsonConfigUtils.GetAppSettings <LogConfigRootDTO>(AppSettingsFileNameConfig.AppSettingsFileName, "LogFiedOutPutConfigs"); if (logConfigRootDTOInfo == null) { return; } // 写入所有的项目配置项的字段 在appsetting中配置的 输出elk节点的数据字段 foreach (var item in logConfigRootDTOInfo.ConfigsInfo) { switch (item.FiedName) { //case "orgid": // WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); // output.Write(","); // break; default: WritePropertyAndValue(output, item.FiedName, item.FiedValue); output.Write(","); break; } } // 写入http对应的信息数据 if (HttpContextProvider.GetCurrent() != null && HttpContextProvider.GetCurrent().Request != null) { if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) { WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); output.Write(","); } // 输出请求页面url if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Path)) { WritePropertyAndValue(output, "requestUrl", HttpContextProvider.GetCurrent().Request.Path.ToString()); output.Write(","); } // 输出携带token if (HttpContextProvider.GetCurrent().Request.Headers["Authorization"].FirstOrDefault() != null) { WritePropertyAndValue(output, "Authorization", HttpContextProvider.GetCurrent().Request.Headers["Authorization"].FirstOrDefault()); output.Write(","); } // 输出请求参数 if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) { string contentFromBody = ParamsHelper.GetParams(HttpContextProvider.GetCurrent()); WritePropertyAndValue(output, "requestParam", contentFromBody); output.Write(","); } // 输出请求方法类型 if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) { WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); output.Write(","); } } // 输出请求时间戳 WritePropertyAndValue(output, "timestamp", logEvent.Timestamp.ToString("o")); output.Write(","); // 输出日志级别 WritePropertyAndValue(output, "level", logEvent.Level.ToString()); output.Write(","); // 输出log内容 WritePropertyAndValue(output, "executeResult", logEvent.MessageTemplate.Render(logEvent.Properties)); if (logEvent.Exception != null) { output.Write(","); WritePropertyAndValue(output, "exception", logEvent.Exception.ToString()); } WriteProperties(logEvent.Properties, output); output.Write('}'); }
protected void OnEndRequest(object sender, EventArgs e) { HttpContextProvider.OnEndRequest(); }
protected void OnPreRequestHandlerExecute(object sender, EventArgs e) { HttpContextProvider.OnBeginRequest(); // preserves HttpContext.Current for use across async/await boundaries. }