代码中的.net Access Forms身份验证“超时”值

Posted

技术标签:

【中文标题】代码中的.net Access Forms身份验证“超时”值【英文标题】:.net Access Forms authentication "timeout" value in code 【发布时间】:2010-10-24 21:21:18 【问题描述】:

我正在向我的应用程序添加注销到期警报,并希望从我的代码中访问我的 web.config 表单身份验证“超时”值。有什么办法可以做到吗?

【问题讨论】:

【参考方案1】:

我认为您可以从 FormsAuthentication 静态类方法中读取它,这比直接读取 web.config 更好,因为您可能从更高级别的 web.config 继承身份验证设置。

var authTicket = new FormsAuthenticationTicket(user.EmailAddress, true, (int)FormsAuthentication.Timeout.TotalMinutes);

【讨论】:

这是最好的答案,但 Timeout 属性仅适用于 .Net 4.0 及更高版本中的 FormsAuthentication 静态类。【参考方案2】:

您可以在以下位置访问 web.config 的 timeout 值:

FormsAuthentication.Timeout.TotalMinutes

我不知道它什么时候可用,我使用的是 .NET 4.5。

【讨论】:

【参考方案3】:
 Configuration conn = WebConfigurationManager.OpenWebConfiguration("");

            AuthenticationSection section = (AuthenticationSection)conn.SectionGroups.Get("system.web").Sections.Get("authentication");



            long cookieExpires = System.Convert.ToInt64(section.Forms.Timeout.TotalMinutes);

【讨论】:

要获取当前项目的 Web.Config 路径,请在 OpenWebConfiguration("") 中输入 Request.ApplicationPath【参考方案4】:

您可以使用以下方式从您的 javascript 访问它:

var expireTime = <%= FormsAuthentication.Timeout.TotalMinutes %>;

【讨论】:

【参考方案5】:

你可以parse it directly from the web.config文件。

【讨论】:

【参考方案6】:

此代码将在几分钟内从您当前项目的 Web.Config 文件中的AuthenticationSection 部分为您提供timeout

Configuration conn = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
AuthenticationSection section = (AuthenticationSection)conn.SectionGroups.Get("system.web").Sections.Get("authentication");
FormsAuthenticationConfiguration currentForms = section.Forms;
int timeout = currentForms.Timeout.Minutes;
txtAppSessionTimeout.Text = timeout.ToString();

如果您认为此答案正确,请标记为正确

【讨论】:

以上是关于代码中的.net Access Forms身份验证“超时”值的主要内容,如果未能解决你的问题,请参考以下文章

asp.net Forms身份验证详解

使用 ASP.net 表单身份验证保护 MS Access 前端应用程序

ASP.NET 中的用户身份验证

.Net MVC 身份验证

将 Forms 身份验证与 Windows 身份验证混合使用

经典FormsAuthenticationTicket 分析