日期:2014-05-17  浏览次数:20486 次

请教MVC3中用户登录后用户信息保存的问题.
我在做MVC3应用时,发现我在用户登录的时候用Cookie保存用户数据,如下:
HttpCookie aCookie = new HttpCookie(User.Identity.Name + "Eid");
aCookie.Value = informations.First().Enterprise_ID.ToString();
aCookie.Expires = DateTime.Now.AddDays(365);
Response.Cookies.Add(aCookie);

但如果客户端关闭了Cookie的话,后面读取这个Cookie时,就读不到了,但mvc3自带的用户登录,即使客户端关闭了Cookie也能够正常读到用户名,而且关闭浏览器后,还能读到,最主要的是我不想使用session,也不想用URL传值,请问怎么实现这个功能呢?

------解决方案--------------------
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,
account.UserName,
DateTime.Now,
DateTime.Now.AddMinutes(20),
false,
"admin"//写入用户角色
);

string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);