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

最佳答案

看看 this issue on Microsoft's Connect site 。它被关闭为“不会修复”,但看起来它已在 .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;

关于c# - .NET 3.5 中的 FormsAuthentication.Timeout.TotalMinutes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9600122/

10-13 01:50