zoukankan      html  css  js  c++  java
  • C# MVC 用户登录状态判断

    在Filters文件夹下添加一个类AuthenticationAttribute ,代码如下:

    // 登录认证特性
    public class AuthenticationAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.HttpContext.Session["username"] == null)
                filterContext.Result = new RedirectToRouteResult("Login", new RouteValueDictionary { { "from", Request.Url.ToString() } });
                
            base.OnActionExecuting(filterContext);
        }
    }

    在Controller中的使用方法如下:

    public class HomeController : Controller 
    { 
        [Authentication] 
        public ActionResult Index()
        {
            return View();
        }
    }

    如果你想针对整个MVC项目的所有Action都使用此过滤器,步骤如下(a,b选择一种就好):

    a. 确保Global.asax.cs的Application_Start方法中包含如下红色行:

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
    
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }

    b. 在FilterConfig.cs文件中注册相应的特性过滤器:

    public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new AuthenticationAttribute());
        }
    }
  • 相关阅读:
    centos6升级内核
    centos7启动盘制作
    sed匹配字符串并将匹配行的后几行注释
    cmd下调用xshell登录linux服务器
    centos清除历史命令
    yum错误Cannot retrieve metalink for repository: epel/x86_6
    ansible-playbook
    jdk升级到1.8
    shell瞎记录
    shell 循环
  • 原文地址:https://www.cnblogs.com/cherryzhou/p/4978342.html
Copyright © 2011-2022 走看看