FormAuth表单验证

表单验证整理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#region Form 表单验证
//第一种方法 第一个参数对应第二种方法 票据中的第二个参数
//FormsAuthentication.SetAuthCookie(UserInfo.NetId, true);
//第二种方法 可以多存放一个UserData (一般可以用来存放Role信息)
//1. 生成Ticket
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(
1, //Version
UserInfo.NetId, //用户关键信息
DateTime.Now, //Cookie发起时间
DateTime.Now.AddHours(2), //Cookie有效期
true, //Cookie是否持久
UserInfo.DisplayName // USERDATA 可以自定义
);
//2.生成Cookie FormsAuthentication.Encrypt(Ticket) 对Ticket加密, FormsAuthentication.FormsCookieName ==Webconfig中name=.ASPXAUTH
HttpCookie Cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(Ticket));
//3.设置Cookie有效期
Cookie.Expires = DateTime.Now.AddHours(2);
//4.将身份验证票Cookie附加到输出的cookie集合中,发送到客户端.
Response.Cookies.Add(Cookie);
#endregion

#region Webconfig 配置 <system.web>中
//<authentication mode="Forms">
// <forms name=".ASPXAUTH" loginUrl="~/Account/Login" protection="All" path="/" timeout="2880" />
//</authentication>
//<authorization>
// <allow users="*" />
//</authorization>
#endregion

#region 退出
FormsAuthentication.SignOut();
Redirect(FormsAuthentication.LoginUrl);
#endregion


#region 使用
1. HttpContext.Request.User.Identity.IsAuthenticated Ture/False 是否验证通过授权验证
2. HttpContext.Request.User.Identity.Name 获取Tickct 中用户信息 UserName

#endregion
坚持记录世界,分享世界