日期:2014-05-19  浏览次数:20430 次

我的头晕掉了,cookies与formsauthentication?
一直没有理解cookies与formsauthentication的关系?

FormsAuthenticationTicket   ticket   =   new   FormsAuthenticationTicket(1,
((SiteIdentity)Context.User.Identity).UserName,   DateTime.Now,DateTime.Now.AddDays(14),true,                                                         FormsAuthentication.FormsCookiePath);
string   encTicket   =   FormsAuthentication.Encrypt(ticket);
FormsAuthentication.SetAuthCookie(tb_UserName.Text.Trim(),   true);
Response.Cookies.Add(new   HttpCookie(FormsAuthentication.FormsCookieName,   encTicket))
上面的各语句中,是不是可以这样理解:
1;((SiteIdentity)Context.User.Identity).UserName是需要将ticket存入的cookie的名称,setAuthCookie作用是将ticket存入cookie中,cookies.add是将创建好的cookie存入到用户机器中?
2;但为什么如果我将((SiteIdentity)Context.User.Identity).UserName改为 "SourVer "+((SiteIdentity)Context.User.Identity).UserName;那么下次我取Context.User.Identity.Name时,就是 "SourVer "+((SiteIdentity)Context.User.Identity).UserName的值,难道上面第一点((SiteIdentity)Context.User.Identity).UserName是cookie名的理解是错误的,或者Context.User.Identity.Name就是cookie名,到底那一个是cookie名?为什么会出现两个值是一样的?
3;public   static   string   GetRedirectUrl(string   userName,bool   createPersistentCookie)中,userName是什么意思,是cookie名还是用户名,如果用户名就是cookie名的话,那么不同网站的相同用户名的cookie是不是要相互覆盖?还有createPersistentCookie的持久性是什么意思?最上面语句中的DateTime.Now,DateTime.Now.AddDays(14)是ticket的持久时间还是cookie的持久时间,两者一样吗?设置cookie的时间如何设?
4;每次登陆时,.net是根据什么来查找cookie的,Context.User.Identity.IsAuthenticated的工作机理是怎样的?

头晕的事..................,谢谢各位了.

------解决方案--------------------
up