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

ASP.NET MVC2 保留Cookie保存不了

2012-08-07 
ASP.NET MVC2 保存Cookie保存不了C# codestring data string.Empty//用户数据转成一个字符串。if (model

ASP.NET MVC2 保存Cookie保存不了

C# code
         string data = string.Empty;                //用户数据转成一个字符串。                if (model != null)                    data = (new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(model);                //创建FormsAuthenticationTicket                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, model.UserAccount, DateTime.Now, DateTime.Now.AddDays(7), true, data);                //加密                string cookieValue = FormsAuthentication.Encrypt(ticket);                //创建FormsAuthenticationTicket                HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieValue);                cookie.HttpOnly = true;                cookie.Secure = FormsAuthentication.RequireSSL;                cookie.Domain = FormsAuthentication.CookieDomain;                cookie.Path = FormsAuthentication.FormsCookiePath;                cookie.Expires = DateTime.Now.AddDays(7);                System.Web.HttpContext.Current.Response.Cookies.Add(cookie);                //身份验证                FormsAuthentication.RedirectFromLoginPage(model.UserAccount, false);


试过很多种很多种方法都无法创建 Cookies,大神求救!!!

[解决办法]
用Response.Cookies添加cookie或者可以用我写的方法
C# code
 public void SignIn(HttpContextBase httpContext, string userName, string userId, bool createPersistentCookie)        {            if (String.IsNullOrEmpty(userName))            {                throw new ArgumentException("值不能为 null 或为空。", "userName");            }            if (String.IsNullOrEmpty(userId))            {                throw new ArgumentException("值不能为 null 或为空。", "roles");            }            var ticket = new FormsAuthenticationTicket(                1,                userName,                DateTime.Now,                DateTime.Now.Add(FormsAuthentication.Timeout),                createPersistentCookie,                userId);            SetAuthCookie(httpContext, ticket);        }        public void SignOut()        {            FormsAuthentication.SignOut();        }        public void SetAuthCookie(HttpContextBase httpContext, FormsAuthenticationTicket authenticationTicket)        {            //DateTime issueDate = DateTime.Now;            //string protectedTicket = FormsAuthentication.Encrypt(authenticationTicket);            //HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, protectedTicket);            //cookie.HttpOnly = true;            //cookie.Expires = issueDate.AddMinutes(20);            //HttpContext.Current.Response.Cookies.Add(cookie);            var encryptedTicket = FormsAuthentication.Encrypt(authenticationTicket);            httpContext.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Expires = CalculateCookieExpirationDate() });        }
[解决办法]
是不是有重名的cookies了,所以你的cookies不能创建成功!

热点排行