Пример #1
0
        public CustomJsonResult LogOff()
        {
            OwnRequest.Quit();
            var ret = new { url = Areas.Wb.Own.OwnWebSettingUtils.GetLoginPage("") };

            return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "退出成功", ret));
        }
Пример #2
0
        public CustomJsonResult ChangePassword(RopChangePassword rop)
        {
            var result = AdminServiceFactory.AuthorizeRelay.ChangePassword(this.CurrentUserId, this.CurrentUserId, rop.OldPassword, rop.NewPassword);

            if (result.Result == ResultType.Success)
            {
                OwnRequest.Quit();
                return(Json(ResultType.Success, "点击<a href=\"" + Wb.Own.OwnWebSettingUtils.GetLoginPage("") + "\">登录</a>"));
            }

            return(result);
        }
Пример #3
0
        public CustomJsonResult GetIndexPageData()
        {
            var ret = new IndexModel();

            ret.Title   = OwnWebSettingUtils.GetWebName();
            ret.IsLogin = OwnRequest.IsLogin();

            if (ret.IsLogin)
            {
                ret.UserName = OwnRequest.GetUserNameWithSymbol();
            }


            return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "获取成功", ret));
        }
Пример #4
0
        public static IHtmlString IsInPermission(this HtmlHelper helper, object value, params string[] permissions)
        {
            if (permissions == null)
            {
                return(helper.Raw(value));
            }

            if (permissions.Length == 0)
            {
                return(helper.Raw(value));
            }

            bool isHas = OwnRequest.IsInPermission(permissions);

            if (isHas)
            {
                return(helper.Raw(value));
            }
            else
            {
                return(helper.Raw(""));
            }
        }
Пример #5
0
        public ActionResult LogOff()
        {
            OwnRequest.Quit();

            return(Redirect(OwnWebSettingUtils.GetLoginPage("")));
        }
        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;



            if (request.HttpMethod == "POST")
            {
                if (request.IsAjaxRequest())
                {
                    var antiForgeryCookie = request.Cookies[AntiForgeryConfig.CookieName];

                    var cookieValue = antiForgeryCookie != null
                        ? antiForgeryCookie.Value
                        : null;
                    //从cookies 和 Headers 中 验证防伪标记
                    //这里可以加try-catch
                    AntiForgery.Validate(cookieValue, request.Headers["__RequestVerificationToken"]);
                }
            }


            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)
            {
                MessageBox messageBox = new MessageBox();
                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='" + WebMobile.Areas.Wb.Own.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)
            {
                MessageBox messageBox = new MessageBox();
                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);
        }