Тайм-аут проверки подлинности с помощью C # в web.config отменяет время ожидания билета вручную? - PullRequest
4 голосов
/ 07 января 2010

У меня есть тестовый проект, и время ожидания форм, указанное в web.config, отменяет время ожидания, которое я установил в FormsAuthenticationTicket. Согласно документации, тайм-аут (дата истечения) в FormsAuthenticationTicket должен переопределить тайм-аут в web.config.

Документация найдена на: http://support.microsoft.com/kb/910443 If the ticket is generated manually by using the FormsAuthenticationTicket class, the time-out can be set through the Expiration attribute. This value will override the timeout attribute value specified in configuration files.

Вот мой код:

Web.config:

<authentication mode="Forms">
 <forms 
  timeout="1" 
  loginUrl="login.aspx" 
  name="sessionTest" 
  cookieless="UseCookies" 
  defaultUrl="default.aspx"
 />
</authentication>

Login.aspc.cs:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(Login1.UserName, false, 2);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
Response.Cookies.Add(cookie);

// redirect user
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);

Теперь, когда я вхожу, меня перенаправляют после 1 минуты бездействия. Этого не должно случиться, верно? Я должен быть перенаправлен через 2 минуты.

Кто-то может объяснить это?

1 Ответ

0 голосов
/ 01 февраля 2010

Я думаю, что вызов RedirectFromLoginPage перезаписывает ваш файл cookie. Вы можете попробовать использовать это вместо.

Response.Redirect( FormsAuthentication.GetRedirectUrl( UserName.Text, chkPersistCookie.Checked );

Дополнительная информация, которая может быть полезна здесь: http://www.4guysfromrolla.com/webtech/110701-1.3.shtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...