.NET 3.5中的窗体身份验证超时总分钟数

本文关键字:超时 分钟 身份验证 窗体 NET | 更新日期: 2023-09-27 18:27:12

我刚刚在使用FormsAuthentication,我想要web配置中表单身份验证标记的timeout属性的值。在4.0中,我们可以通过FormsAuthentication.Timeout.TotalMinutes(参考:FormsAuthauthenticationTicket.expiration v web.config value Timeout)获得此信息。你能告诉我如何在.NET 2.0中获得相同的信息吗?

.NET 3.5中的窗体身份验证超时总分钟数

看看微软Connect网站上的这个问题。它被关闭为"不会修复",但看起来它已经在.NET4中修复了。

在.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;