FormsAuthentication.Timeout.TotalMinutes в.NET 3.5
Я просто работал с FormsAuthentication и хотел получить значение свойства timeout тега аутентификации формы в веб-конфигурации. В 4.0 мы можем получить это через FormsAuthentication.Timeout.TotalMinutes (ref: /questions/33784270/formsauthenticationticketexpiration-v-webconfig-tajm-aut-znacheniya). Можете ли вы дать мне знать, как я могу получить то же самое в.NET 2.0?
1 ответ
Посмотрите на эту проблему на сайте 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;