首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net cook奇怪的有关问题

2012-01-13 
asp.net cook奇怪的问题,FormsAuthenticationTickettknewFormsAuthenticationTicket(1,//指定版本号:可随

asp.net cook奇怪的问题,
FormsAuthenticationTicket   tk   =   new   FormsAuthenticationTicket(
                                                                                1,                                 //指定版本号:可随意指定
                                                                        memberid.ToString(),   //登录用户名:对应   Web.config   中   <allow   users= "Admin "   …   />   的   users   属性
                                                                                System.DateTime.Now,       //发布时间
                                                                                System.DateTime.Now.AddYears(100),       //失效时间:100   年以后,够永够久了吧
                                                                        true,
                                                                        “我的信息”   //用户数据:可用   ((System.Web.Security.FormsIdentity)User.Identity).Ticket.UserData   获取
                                      );
                                //HttpContext.Current.Items[ "UseInfo "]   =   null;//reset   the   infor

                                string   str   =   FormsAuthentication.Encrypt(tk);//加密身份验票
                               
                                System.Web.HttpCookie   ck   =   new   HttpCookie(FormsAuthentication.FormsCookieName,   str);
我在login页面里面在userData里面放入我的信息,

                void   application_AuthenticateRequest(object   sender,   EventArgs   e)
                {
                        HttpApplication   application   =   (HttpApplication)sender;
                        HttpContext   context   =   application.Context;


                        if   (context.Request.IsAuthenticated)
                        {
                                HttpCookie   authCookie   =   context.Request.Cookies[FormsAuthentication.FormsCookieName];
                                FormsAuthenticationTicket   authTicket   =   FormsAuthentication.Decrypt(authCookie.Value);//解密  
                                string   UseInfo   =   authTicket.UserData;
里面把userData取出来,为什么就是空了呢?还有,我在login里面把cook设定到100年后过期,我取得时候,怎么又是立刻过期呢?

[解决办法]
你是直接读Cookie,我是把Page.User.Identity先强行转为FormsIdentity,然后从里面读出UserData.工作正常.

我是在MSDN里找到的例子.

PS:现在MSDN越来越不好用了,有用的信息都藏的很深.
[解决办法]
public static string GetCurrentUserData()
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
return 0;
FormsIdentity useridentity = (FormsIdentity)(HttpContext.Current.User.Identity);
string userdatastr = useridentity.Ticket.UserData;
return userdatastr;
}
[解决办法]
设置cookies的path属性就可以了,多域名共享就设置域名一下就可以了,哈哈,给分

热点排行