- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试找出一种动态更改 session 超时的方法,因为我的客户要求这是一个他们可以轻松更改的值(就好像它是数据库事务一样)。这是我要更改的值的截断版本:
<appSettings>
<add key="SessionTimeout" value="20"/>
</appsettings>
我正在使用 C#/.Net 3.5 处理所有这些。
郑重声明,我知道更改 web.config 文件会导致应用程序重新启动。我要做的是让程序管理员能够即时更改超时。例如,如果他们要求人们填写的其中一张表格花费的时间超过 20 分钟,他们需要将时间延长到半小时,或者如果他们出于其他原因希望缩短时间。由于我们想让用户(包括管理员)远离代码文件,目标是将其创建为网站管理页面的一部分。
问题是,我不知道该怎么做,或者它是否可能(更不用说好主意了)。我在谷歌上四处奔波,但一无所获。
有没有办法进行这些更改,甚至有可能即时动态更改超时(覆盖 web.config 的内容)?
感谢您的帮助。
最佳答案
在运行时编辑您的 web.config 是可能的,但正如您已经指出的那样,我不确定这是否是个好主意。您可以通过多种方式实际编辑此文件,但是您必须确保运行应用程序的帐户具有适当的文件系统权限,以便能够写入应用程序目录(例如编辑和编辑)保存 web.config 文件)。如果您处于集群环境中,我强烈建议您不要走这条路(尽管仍然可能)。
一旦您的权限等被整理出来,下面是一个快速的方法。
public void EditMyWebConfig(string appSettingsKey, string appSettingsValue, string filePath)
{
XmlDocument xml = new XmlDocument();
//Load current config into memory
xml.Load(filePath);
//Overwrite config
using(FileStream fs = new FileStream(filePath, FileMode.Create,FileAccess.ReadWrite))
{
//select appSetting you want to edit
XmlNode xmlN = xml.SelectSingleNode("//configuration/appSettings/add[@key = '" + appSettingsKey + "']");
//assign new value
xmlN.Attributes["value"].Value = appSettingsValue;
//Create new web config
xml.Save(fs);
}
}
我希望这会有所帮助,但我认为您应该只选择较长的 session 时间会更容易,并且在将来造成的问题更少。
关于c# - 从应用程序中更改 Web.Config SessionTimeout 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207715/
我确信这个问题被问过很多次,但我找不到一个好的解决方案。 当用户单击注销时,控件将转到 /sessiontimeout 而不是 /logout。我见过不同的解决方案,其中建议将 invalidate-
我正在尝试找出一种动态更改 session 超时的方法,因为我的客户要求这是一个他们可以轻松更改的值(就好像它是数据库事务一样)。这是我要更改的值的截断版本: 我正在使用 C#/.Net
我正在做一个 MVC 应用程序。这是我的 _Layout.cshtml 我需要将其移动到 js 文件 window.SessionTimeout = (function() { var _t
我正在尝试使 Java 中的 HttpSession 超时。我的容器是 WebLogic。 目前,我们在 web.xml 文件中设置了 session 超时,如下所示 15 现在,有人告诉
在我们的一个项目中,我们遇到了随机 session 超时问题。根据最近的发现,我注意到 Sitecore Analytics.Robots.SessionTimeout 可能是导致它的原因。 我们注意
在我们的一个项目中,我们遇到了随机 session 超时问题。根据最近的发现,我注意到 Sitecore Analytics.Robots.SessionTimeout 可能是导致它的原因。 我们注意
在我的站点中,我有一个 从 rss.cfm 加载 RSS 提要.下面的代码如预期的那样在 60 秒后刷新 RSS 提要。 但是,它最初不会加载 直到第一个 60 秒过去之后。它还会导致 session
下面的代码似乎不再在 ASP.NET Identity 中工作?这是正确的吗? Global.asax protected void Session_Start(object sender, Even
我是一名优秀的程序员,十分优秀!