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

时间:2022-03-23 05:26:00

前言

本人虽然做 .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认证的基本用户就这样,本人文采不好,下次继续努力。