使用Forms进行身份验证(Asp.net)
2014-02-12 12:01
579 查看
1、背景 以往项目登陆后的用户信息都是存放在session中,但session有一个问题就是读取的时候需要先实例化所在类,在调用对象()如果用static修饰,则可能到时多次登陆sessionid都一样,存在安全问题。目前的项目使用了FormsAuthentication方式存储登陆用户信息,使用的是Cookie存储方式。
2、代码介绍 2. 1 public class UserInfo:定义当前登陆用户需要存储的基本信息
2.2 登陆成功后将用户信息对象UserInfo序列化为json字符串存储
(系统会自动关联当前用户到HttpContext.Current.User.Identity.Name) var curUser = new UserInfo(); string name = JsonConvert.SerializeObject(curUser); FormsAuthentication.SetAuthCookie(name, false); 2.3 登陆用户信息的实体
3、优点和缺点 优点:使用static方法,读取方便;使用Forms验证,安全性有一定保障
缺点:
1、保存的基本信息不可过多,否则调用FormsAuthentication.SetAuthCookie方法时会抛异常(“无法加密身份验证票”) 2、Forms使用Cookie存放数据,存在一定的安全隐患
From WizNote
2、代码介绍 2. 1 public class UserInfo:定义当前登陆用户需要存储的基本信息
2.2 登陆成功后将用户信息对象UserInfo序列化为json字符串存储
(系统会自动关联当前用户到HttpContext.Current.User.Identity.Name) var curUser = new UserInfo(); string name = JsonConvert.SerializeObject(curUser); FormsAuthentication.SetAuthCookie(name, false); 2.3 登陆用户信息的实体
对象(读取HttpContext.Current.User.Identity.Name Json字符串并反序列化为UserInfo对象)
public class Runtime { /// <summary> /// 当前登录用户相关信息 /// </summary> public static UserInfo CurrentUser { get { if (HttpContext.Current.Request.IsAuthenticated) { SysUser longinUser = JsonConvert.DeserializeObject<UserInfo>(HttpContext.Current.User.Identity.Name); if (string.IsNullOrEmpty(longinUser.LoginName)) { return null; } else { return longinUser; } } } } }2.4 退出登陆 FormsAuthentication.SignOut();
3、优点和缺点 优点:使用static方法,读取方便;使用Forms验证,安全性有一定保障
缺点:
1、保存的基本信息不可过多,否则调用FormsAuthentication.SetAuthCookie方法时会抛异常(“无法加密身份验证票”) 2、Forms使用Cookie存放数据,存在一定的安全隐患
From WizNote
相关文章推荐
- 使用ASP.Net Forms模式实现WebService身份验证
- 使用ASP.Net Forms模式实现WebService身份验证
- 使用ASP.Net Forms模式实现WebService身份验证 补充
- [小技巧][ASP.Net MVC Hack] 使用 HTTP 报文中的 Header 字段进行身份验证
- ASP.NET跨应用程序进行 Forms 身份验证
- asp.net中使用基于角色的身份Forms验证,大致分为四个步骤
- asp.net中使用基于角色的身份Forms验证 (2)
- 使用ASP.Net Forms模式实现WebService身份验证
- 我要学ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
- asp.net中使用基于角色的身份Forms验证 (3)
- 使用ASP.Net Forms模式实现WebService身份验证 (转)
- 使用ASP.Net Forms模式实现WebService身份验证
- asp.net 使用AD进行身份进行验证
- ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
- asp.net中使用基于角色的身份Forms验证 (1)
- 使用ASP.Net Forms模式实现WebService身份验证
- ASP.NET跨应用程序进行 Forms 身份验证
- ASP.NET中使用Forms验证身份验证
- 使用ASP.Net Forms模式实现WebService身份验证
- 使用ASP.Net Forms模式实现WebService身份验证