/// <summary> /// Cookie身份验证辅助类 /// </summary> public class AuthenticationCookie { /// <summary> /// 判断用户是否登录成功并授权 /// </summary> public static bool IsAuthenticated { get { try { return HttpContext.Current.User.Identity.IsAuthenticated; } catch (Exception ex) { throw new Exception("在非Http访问环境下无法访问用户信息"); } } } /// <summary> /// 授权操作 /// <remarks> /// 在验证登录的用户合法后调用该方法 /// </remarks> /// </summary> /// <typeparam name="T"></typeparam> /// <param name="userName">用户名,必须使用标识用户唯一的字段</param> /// <param name="user"></param> /// <param name="rememberMe"></param> public static void SetAuthentication<T>(string userName, T user, bool rememberMe = false) { string userData = SerializerHelper.JsonSerialize(user); //创建身份认证票据 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddDays(7), rememberMe, userData); //对票据进行加密处理 string ticketEncString = FormsAuthentication.Encrypt(ticket); HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncString)); } /// <summary> /// 获取用户信息 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T GetUser<T>() { string encCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value; FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encCookie); string userData = ticket.UserData; T user = SerializerHelper.JsonDeserialize<T>(userData); return user; } }
通用身份验证类:AuthenticationCookie
猜你喜欢
转载自code.iteye.com/blog/2240931
今日推荐
周排行