public int GetUserId() { return(OwnRequest.GetCurrentUserId()); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { bool skipAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), inherit: true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), inherit: true); if (skipAuthorization) { return; } var request = filterContext.RequestContext.HttpContext.Request; var response = filterContext.RequestContext.HttpContext.Response; bool isAjaxRequest = request.IsAjaxRequest(); string userAgent = request.UserAgent; string returnUrl = isAjaxRequest == true ? request.UrlReferrer.AbsoluteUri : request.Url.AbsoluteUri; string token = request.QueryString["token"]; if (token != null) { HttpCookie cookie_session = request.Cookies[OwnRequest.SESSION_NAME]; if (cookie_session != null) { cookie_session.Value = token; response.AppendCookie(cookie_session); } else { response.Cookies.Add(new HttpCookie(OwnRequest.SESSION_NAME, token)); } } var userInfo = OwnRequest.GetUserInfo(); if (userInfo == null) { MessageBoxModel messageBox = new MessageBoxModel(); messageBox.No = Guid.NewGuid().ToString(); messageBox.Type = MessageBoxTip.Failure; messageBox.Title = "温馨提示"; messageBox.GoToUrl = OwnWebSettingUtils.GetLoginPage(returnUrl); messageBox.Content = "请先<a href=\"javascript:void(0)\" onclick=\"window.top.location.href='" + OwnWebSettingUtils.GetLoginPage(returnUrl) + "'\">登录</a>后打开"; messageBox.IsTop = true; if (isAjaxRequest) { CustomJsonResult jsonResult = new CustomJsonResult(ResultType.Exception, ResultCode.Exception, messageBox.Title, messageBox); //jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; filterContext.Result = jsonResult; filterContext.Result.ExecuteResult(filterContext); filterContext.HttpContext.Response.End(); } else { filterContext.Result = new ViewResult { ViewName = "MessageBox", MasterName = "_Layout", ViewData = new ViewDataDictionary { Model = messageBox } }; } return; } if (_permissions != null) { MessageBoxModel messageBox = new MessageBoxModel(); messageBox.No = Guid.NewGuid().ToString(); messageBox.Type = MessageBoxTip.Warn; messageBox.Title = "温馨提示"; messageBox.Content = "您没有权限"; bool isHasPermission = OwnRequest.IsInPermission(_permissions); if (!isHasPermission) { if (isAjaxRequest) { CustomJsonResult jsonResult = new CustomJsonResult(ResultType.Exception, ResultCode.Exception, messageBox.Title, messageBox); //jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet; filterContext.Result = jsonResult; filterContext.Result.ExecuteResult(filterContext); filterContext.HttpContext.Response.End(); } else { filterContext.Result = new ViewResult { ViewName = "MessageBox", MasterName = "_Layout", ViewData = new ViewDataDictionary { Model = messageBox } }; } return; } } OwnRequest.Postpone(); base.OnActionExecuting(filterContext); }