C# 在.net mvc应用程序中检查/获取IIS值

C# 在.net mvc应用程序中检查/获取IIS值,c#,asp.net,asp.net-mvc,asp.net-mvc-4,iis,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Iis,需要:尝试为超时操作实现javascript重定向,并且需要知道设置超时的时间间隔。重定向强制用户重新登录。我想从IIS获取此值,以匹配那里的超时 问题:是否可以使用.net mvc framework检索IIS设置值?如何获取驻留在ASP设置下的超时值?您可以使用类(Microsoft.Web.Administration.dll)检索IIS值。 正如Jonesy所说,您可以通过cookie或其他方式将超时传递回浏览器 要获取ASP.NET会话超时,我建议您在web.config文件中指定所需

需要:尝试为超时操作实现javascript重定向,并且需要知道设置超时的时间间隔。重定向强制用户重新登录。我想从IIS获取此值,以匹配那里的超时


问题:是否可以使用.net mvc framework检索IIS设置值?如何获取驻留在ASP设置下的超时值?

您可以使用类(Microsoft.Web.Administration.dll)检索IIS值。 正如Jonesy所说,您可以通过cookie或其他方式将超时传递回浏览器

要获取ASP.NET会话超时,我建议您在web.config文件中指定所需的超时:

<configuration>
  <system.web>
    <sessionState 
       mode="InProc"
       cookieless="true"
       timeout="30" />
  </system.web>
</configuration>

然后,您可以使用以下代码读取超时:

 //if it is a root application, then the path will be "/"
 var configPath = "/YourApplicationName";

 var config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);

 // get the object related to the <sessionSate> section.
 var sessionSection = (System.Web.Configuration.SessionStateSection)config.GetSection("system.web/sessionState");

 // get the session timeout value
 var timeOut= SessionSection.Timeout;
//如果是根应用程序,则路径为“/”
var configPath=“/YourApplicationName”;
var config=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);
//获取与节相关的对象。
var sessionSection=(System.Web.Configuration.SessionStateSection)config.GetSection(“System.Web/sessionState”);
//获取会话超时值
var timeOut=SessionSection.timeOut;
有关参考资料,请参阅:

超时可以存储为静态,以便在需要时检索

您还可以从当前会话中检索设置(但我认为这不是您所需要的):
System.Web.HttpContext.Current.Session.Timeout

要获取ASP.NET或ASP.Classic应用程序中的IIS会话超时值(以分钟为单位),请执行以下操作:

Session.Timeout
此值对应于在IIS管理器中选择网站并导航到以下任一位置时将找到的值:

ASP.NET

  • ASP.NET-->会话状态-->Cookie设置-->超时(分钟)
ASP经典版

  • IIS->ASP-->会话属性-->超时

您使用的是身份成员身份吗?无论哪种方式,都应该设置过期时间,或者您可以在登录时添加一个cookie,只需使用javascript检查其值,而无需返回服务器。这是否允许我检索iis值?我现在没有使用它,我只是刚刚从你那里听说:)你有一个如何在ASP配置下检索超时设置的示例吗?有Server.SiteDefaults.ConnectionTimeout,但我不确定它是否对应于ASP超时,因为这是20分钟,显示为2分钟。好的,我看到您想要获取会话超时。我会更新我的答案。