/// <summary> /// 解析Coolwi-Header内容 /// </summary> /// <param name="valueString">Coolwi-Header值</param> /// <returns>解析Coolwi-Header内容</returns> private RequestClientInfoQueryModel ResolveClientInfo(string valueString) { RequestClientInfoQueryModel model = new RequestClientInfoQueryModel(); if (string.IsNullOrWhiteSpace(valueString)) { return(model); } Dictionary <string, string> dic = new Dictionary <string, string>(); string[] values = valueString.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (var v in values) { string[] item = v.Split(new char[] { '=' }); if (item.Length != 2) { LogUtil.Warn(string.Format("Coolwi-Header is invalid:{0}.", valueString)); continue; } if (!dic.ContainsKey(item[0])) { dic.Add(item[0], item[1]); } } return(JsonUtil.Deserialize <RequestClientInfoQueryModel>(JsonUtil.Serialize(dic))); }
/// <summary> /// 从Request对象中获取Headers请求的Client-Info参数DeviceID /// </summary> /// <param name="request"></param> /// <returns></returns> private RequestClientInfoQueryModel GetClientInfo(HttpRequestBase request) { RequestClientInfoQueryModel model = new RequestClientInfoQueryModel(); string clientInfo = request.Headers.Get("Client-Info"); //旧版格式 if (!string.IsNullOrEmpty(clientInfo)) { model = JsonUtil.Deserialize <RequestClientInfoQueryModel>(clientInfo); } else { clientInfo = request.Headers.Get("Coolwi-Header"); model = ResolveClientInfo(clientInfo); } return(model); }
/// <summary> /// 获取EUrlStatViewModel对象 /// </summary> /// <param name="filterContext">AuthorizationContext</param> /// <returns></returns> private EUrlStatViewModel GetUrlStatViewModel(AuthorizationContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; EUrlStatViewModel stat = new EUrlStatViewModel(); stat.RequestUrl = request.Url.Authority + request.Url.AbsolutePath; stat.RequestType = request.RequestType; stat.SessionID = filterContext.HttpContext.Session.SessionID; stat.ProSign = "MCP"; stat.ParamData = GetParamData(request); stat.HeaderParamData = GetHeadersParam(request); stat.UserId = SessionUtil.Current != null ? SessionUtil.Current.UserId : null; RequestClientInfoQueryModel mode = GetClientInfo(request); stat.DeviceId = mode.DeviceId; stat.DeviceType = mode.DeviceType; stat.Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; stat.Action = filterContext.ActionDescriptor.ActionName; return(stat); }