/// <summary> /// 获取去掉查询参数的Url /// </summary> /// <param name="req">请求</param> /// <returns></returns> public static string GetDisplayUrlNoQuery(this HttpRequest req) { var queryStr = req.QueryString.ToString(); var displayUrl = req.GetDisplayUrl(); return(queryStr.IsNullOrEmpty() ? displayUrl : displayUrl.Replace(queryStr, "")); }
public static KissLog.Http.HttpRequest Create(Microsoft.AspNetCore.Http.HttpRequest httpRequest) { if (httpRequest == null) { throw new ArgumentNullException(nameof(httpRequest)); } Session session = KissLog.InternalHelpers.WrapInTryCatch(() => GetSession(httpRequest)); session = session ?? new Session(); bool isAuthenticated = httpRequest.HttpContext?.User?.Identity?.IsAuthenticated ?? false; KissLog.Http.HttpRequest result = new KissLog.Http.HttpRequest(new KissLog.Http.HttpRequest.CreateOptions { Url = new Uri(httpRequest.GetDisplayUrl()), HttpMethod = httpRequest.Method, UserAgent = GetUserAgent(httpRequest.Headers), HttpReferer = GetHttpReferrer(httpRequest.Headers), RemoteAddress = httpRequest.HttpContext?.Connection?.RemoteIpAddress?.ToString(), MachineName = InternalHelpers.GetMachineName(), IsNewSession = session.IsNewSession, SessionId = session.SessionId, IsAuthenticated = isAuthenticated }); RequestProperties.CreateOptions propertiesOptions = new RequestProperties.CreateOptions(); propertiesOptions.Cookies = InternalHelpers.ToKeyValuePair(httpRequest.Cookies); propertiesOptions.Headers = InternalHelpers.ToKeyValuePair(httpRequest.Headers); propertiesOptions.QueryString = InternalHelpers.ToKeyValuePair(httpRequest.Query); propertiesOptions.Claims = GetClaims(httpRequest); if (httpRequest.HasFormContentType) { if (KissLogConfiguration.Options.Handlers.ShouldLogFormData.Invoke(result) == true) { propertiesOptions.FormData = InternalHelpers.ToKeyValuePair(httpRequest.Form); } } if (KissLog.InternalHelpers.CanReadRequestInputStream(propertiesOptions.Headers)) { if (KissLogConfiguration.Options.Handlers.ShouldLogInputStream.Invoke(result) == true) { propertiesOptions.InputStream = KissLog.InternalHelpers.WrapInTryCatch(() => { return(ModuleInitializer.ReadInputStreamProvider.ReadInputStream(httpRequest)); }); } } result.SetProperties(new RequestProperties(propertiesOptions)); return(result); }