FormsAuthentication.Timeout.TotalMinutes в .NET 3.5 - PullRequest
3 голосов
/ 07 марта 2012

Я просто работал с FormsAuthentication и хотел получить значение свойства timeout тега аутентификации формы в веб-конфигурации.В 4.0 мы можем получить это через FormsAuthentication.Timeout.TotalMinutes (ref: FormsAuthenticationTicket.expiration v web.config value timeout ). Можете ли вы дать мне знать, как я могу получить то же самое в .NET 2.0?

1 Ответ

6 голосов
/ 07 марта 2012

Взгляните на эту проблему на сайте Microsoft Connect .Он был закрыт как «Не исправлять», но похоже, что он был исправлен в .NET 4.

Один из способов сделать это в .NET 2.0 или 3.x - это выдать и проверить билет FormsAuthentication:

FormsAuthentication.SetAuthCookie("user", false);
HttpCookie cookie = (HttpCookie)(Request.Cookies[FormsAuthentication.FormsCookieName]);
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
int timeoutInMinutes = (ticket.Expiration - ticket.IssueDate).TotalMinutes; 

Другой способ - использовать API конфигурации:

Configuration config = Configuration.OpenWebConfiguration(HttpRuntime.AppDomainAppPath);
AuthenticationSection section = 
    (AuthenticationSection)config.GetSection("system.web/authentication");
int timeout = section.Forms.Timeout.TotalMinutes;
...