QSMP.Web/Filters/LoginCheckedAttribute.cs

(完整代码) 1KB

using QSMP.Utility.Operator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace QSMP.Web.Filters
{
    /// <summary>
    /// 表示一个特性,该特性用于标识用户是否需要登陆。
    /// </summary>
    public class LoginCheckedAttribute : ActionFilterAttribute
    {

        public bool Ignore { get; set; }
        public string Redirect { get; set; }
        public LoginCheckedAttribute(bool ignore = true)
        {
            Ignore = ignore;
        }

        public LoginCheckedAttribute(string redirect)
        {
            Redirect = redirect;
            Ignore = true;
        }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!Ignore)
            {
                return;
            }
            if (OperatorProvider.Instance.Current == null)
            {
                if (!string.IsNullOrEmpty(Redirect))
                {
                    filterContext.Result = new RedirectResult(Redirect);
                    return;
                }
                filterContext.HttpContext.Response.Write("<script>top.location.href = '/Account/ExceedReLogin'</script>");
            }
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。