mvc 3 Mvc 4 使用Forms 登录验证随笔一

前言

本人虽然做 .Net 也有五年有余,可是没什么大才,总是干些打杂的活,技术很少差劲呀。以前不管是做内部管理系统,还是企业平台,保存用户登录信息用的都是Session,也许是从一开始就接触Session 用习惯了吧!最近几个项目发现都用Forms 验证 通过登录信息,输出到客户端Cookie中,我也研究了一下。

一:Mvc3 4 中 Forms验证代码

1.1 方式一 用的比较多的一种

            //用户数据信息
            string userData = string.Format("{0}|{1}", "zhangsan", "1");
            //生成一个认证票据
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
              "zhangsan",
              DateTime.Now,
              DateTime.Now.AddHours(1),
              true,
              userData);
            //加密票据
            string enTicket = FormsAuthentication.Encrypt(ticket);
            //生成Cookie 输入到客户端
            HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, enTicket);
            //authCookie.Expires = DateTime.Now.AddHours(1);
            Response.Cookies.Add(authCookie);

注意:FormsAuthentication.FormsCookieName  读取的是配置文件中<forms name="">中name的名称,如果不配置文件中不设置name 默认为.ASPXAUTH

1.2 方式二 比较简洁 如果不需要保存用户信息的话,可以选择这种方式

FormsAuthentication.SetAuthCookie("zhangsan",true);

// 这种方式是微软自己封装的一种简便方法

二:Web.Conifg 中配置验证模式认证模式

    <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="/User/Login" timeout="2880"  />
    </authentication>

  mode:设置为Forms 

     注意:name=".ASPXAUTH"    这个名字是生成Cookie 时的名字,可以设置为任何名字,但是切记两头不要包含空格,我就吃过他的亏,导致一直验证不通过。

   Forms认证的基本用户就这样,本人文采不好,下次继续努力。

原文地址:https://www.cnblogs.com/searchbaidu/p/5821220.html