mvc4 Forms验证存储 两种登录代码

自己也不知道网上看到的第一种居多,第二种用到的人很少,第二种代码十分简洁,就是不清楚是否有安全隐患。

要采用Forms身份验证,先要在应用程序根目录中的Web.config中做相应的设置:

<authentication mode="forms"> 
     <forms name=".ASPXAUTH " loginUrl="/Account/Login"  />
</authentication>

1.第一种登录代码

        public ActionResult LoginIn(string username,string password) 
        {
            string userdata = username + "|" + password;
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, 
                username, 
                DateTime.Now, 
                DateTime.Now.AddHours(1), 
                true, 
                userdata);

            string encryptedTicket = FormsAuthentication.Encrypt(ticket);
            HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
            Response.Cookies.Add(authCookie);  

            return RedirectToAction("Index");
        }

判断是否登录,取cookie里的登录信息。

        public ActionResult Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                string cookieName = FormsAuthentication.FormsCookieName; 
                HttpCookie authCookie = Request.Cookies[cookieName]; 
                FormsAuthenticationTicket authTicket = null; 
                authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                string userinfo = authTicket.UserData;
            }
            
            return View();
        }

注销登录,这个两种方法通用。

        public string loginOut() 
        {
            FormsAuthentication.SignOut();
            return "ok";
        }

接下来是自己用的第二种登录代码

2.第二种登录代码

        public ActionResult LoginIn(string username, string password)
        {
            string userdata = username + "|" + password;
            FormsAuthentication.SetAuthCookie(userdata,true);

            return RedirectToAction("Index");
        }

判断是否登录,取cookie里的登录信息。

        public ActionResult Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                string userinfo = User.Identity.Name;
            }
            return View();
        }
原文地址:https://www.cnblogs.com/ariklee/p/3670905.html