代码中的.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 表单身份验证保护 MS Access 前端应用程序