我使用ASP.NET MVC 3,使用表单身份验证(基于您使用file->新建的修改后的香草帐号).
当您登录时,我正在设置一个验证cookie
- FormsAuthentication.SetAuthCookie(userName,true);
所以这应该设置一个持久的cookie.但是如果我关闭浏览器并重新打开,当我浏览网站时我被迫再次登录!我可以看到使用chrome开发工具,当我关闭浏览器时,正在创建cookie(.ASPXAUTH)并且不被删除,所以发生了什么?
我的web.config:
- <authentication mode="Forms">
- <forms loginUrl="~/Account/LogIn" timeout="10000"/>
- </authentication>
我在本地测试,在IIS下,如果这有任何区别.
@R_301_323@
我最好使用身份验证券创建一个cookie.
SetAuthCookie在引擎盖下创建一张验证机票.你是否尝试过自己的auth机票?它将让您存储额外的数据.
SetAuthCookie在引擎盖下创建一张验证机票.你是否尝试过自己的auth机票?它将让您存储额外的数据.
以下是一个例子:
- // create encryption cookie
- FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,userName,DateTime.Now,DateTime.Now.AddDays(90),createPersistentCookie,string.Empty);
- // add cookie to response stream
- string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
- System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);
- if (authTicket.IsPersistent)
- {
- authCookie.Expires = authTicket.Expiration;
- }
- System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);
希望这可以帮助.