/// <summary> /// Occurs before the action method is invoked. /// </summary> /// <param name="actionContext">The action context.</param> public override void OnActionExecuting(HttpActionContext actionContext) { #if NET45 IPrincipal principal = actionContext.RequestContext.Principal; #else IPrincipal principal = Thread.CurrentPrincipal; #endif //用户未登录,不统计游客信息 if (principal == null || !principal.Identity.IsAuthenticated) { return; } OnlineUser user = OnlineUserStore.GetCurrentApiUser(principal); if (user == null) { string name = principal.Identity.Name; try { user = CreateOnlineUser(name, actionContext.Request); } catch (UnauthorizedAccessException e) { actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.Unauthorized, e.Message); return; } } string url = actionContext.Request.RequestUri.AbsolutePath; if (!IgnoreActivityUrls.Contains(url)) { user.LastActivityUrl = url; } user.IpAddress = actionContext.Request.GetClientIpAddress(); user.LastActivityTime = DateTime.Now; OnlineUserStore.Set(user); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpContextBase context = filterContext.HttpContext; if (context == null || !context.User.Identity.IsAuthenticated) { return; } OnlineUser user = OnlineUserStore.GetCurrentSiteUser(context.User); if (user == null) { string name = context.User.Identity.Name; try { user = CreateOnlineUser(name, context); } catch (UnauthorizedAccessException e) { filterContext.Result = new HttpUnauthorizedResult(e.Message); return; } } string url = context.Request.Path; if (!context.Request.IsAjaxRequest() && !IgnoreActivityUrls.Contains(url)) { user.LastActivityUrl = url; } user.IpAddress = context.Request.UserHostAddress; user.LastActivityTime = DateTime.Now; OnlineUserStore.Set(user); }