ASPX auth cookie время истечения всегда 30 минут - PullRequest
9 голосов
/ 27 марта 2012

Я установил время истечения срока действия файла cookie на 1 месяц, но когда я просматриваю время истечения срока действия файла cookie .ASPXAUTH в браузере, он говорит, что через 30 минут.

var ticket = new FormsAuthenticationTicket(1, "myname", DateTime.Now,
                                                        DateTime.Now.AddMonths(1), true, "test");
string ticketString = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketString)
                 {
                     Expires = DateTime.Now.AddMonths(1),
                     Path = FormsAuthentication.FormsCookiePath
                 };
HttpContext.Current.Response.Cookies.Add(cookie);

Можете ли вы сообщить мне, почемуприведенный выше код ведет себя так, я хочу изменить время истечения, но оно всегда наступает 30 минут.

Ответы [ 3 ]

4 голосов
/ 17 сентября 2015

По совету из других ответов я получил эту ссылку.

Видимо, в ASP.NET он проверяет срок действия в Web.config и не принимает срок действияиз печенья.Так что вам нужно добавить в файл конфигурации внутри <system.web>:

<authentication mode="Forms">
  <forms
 name=".ASPXAUTH"
 loginUrl="Login.cshtml" //your login page
 defaultUrl="Default.cshtml" //your default page
 protection="All" //type of encryption
 timeout="43200" //a month in minutes
 path="/"
 requireSSL="false"
 slidingExpiration="true" //Every refresh the expiration time will reset
 cookieless="UseDeviceProfile" //Use cookies if the browser supports cookies
 domain=""
 enableCrossAppRedirects="false">
    <credentials passwordFormat="SHA1" />
  </forms>
</authentication>
4 голосов
/ 27 марта 2012

Требуется ли установить этот тайм-аут программно или это нормально, чтобы установить его в файле конфигурации?Существует параметр timeout , который указывает время ожидания файла cookie для аутентификации: http://msdn.microsoft.com/en-us/library/1d3t3c61.aspx

Значение по умолчанию для этого параметра составляет 30 минут.

С уважением, Дмитрий

3 голосов
/ 27 марта 2012

Проверьте ваш файл web.config, должна быть запись FORM под следующим элементом system.web -> authentication.

проверьте свойство тайм-аута, установлено ли оно на 30 минут?

удалите этот тег проверки подлинности формы оттуда.

...