zoukankan      html  css  js  c++  java
  • asp.net web.config 设置Session过期时间

    在Asp.net中,可以有四处设置Session的过期时间:

    一、全局网站(即服务器)级

    IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期。

    二、网站级

    IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”。

    如果“编辑全局配置”,就和上个配置一样。

    如果“编辑配置”,则只对当前网站生效。因为一个服务器可能有很多独立网站。

    1、继续选择“状态管理”-会话超时(分钟)-设置为360,即360分钟。效果同上,只不过只对当前网站生效。

    2、身份认证-Forms-Cooke超时,选择"12:00:00",即12个小时。可选项共有以下八项:

    00:15:00

    00:30:00

    01:00:00

    02:00:00

    04:00:00

    08:00:00

    12:00:00

    1:00:00:00

    即最长24小时,最小15分钟。这是默认的配置。在应用中可以自由定制。

    三、应用程序级

    同网站管理,只不过作用域仅限当前应用程序。

    四、页面级

    在某页面中,设置Session.Timeout = 30;即可临时修改某页面的会话过期时间。

    查看某个Session的过期时间,可以用

    view plaincopy to clipboardprint? TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);  TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);

    其中,二和三的设置,体现在Web.config中即:

    <?xml version="1.0"?>  
    <configuration>  
    <system.web>  
    <authentication mode="Forms" >  
    <forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/>  
    </authentication>  
    <sessionState mode="InProc"  cookieless="false" timeout="20" />  
    </system.web>  
    <location path="Login.aspx">  
    <system.web>  
    <authorization>  
    <allow users="*" />  
    </authorization>  
    </system.web>  
    </location>  
    </configuration>   
    <?xml version="1.0"?>
    <configuration>
    <system.web>
    <authentication mode="Forms" >
    <forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/>
    </authentication>
    <sessionState mode="InProc"  cookieless="false" timeout="20" />
    </system.web>
    <location path="Login.aspx">
    <system.web>
    <authorization>
    <allow users="*" />
    </authorization>
    
    </system.web>
    </location>
    </configuration>  

    以上四处设置的优先级为页面级>应用程序级>网站级>服务器级。换句话说,如果页面设置为20分钟,网站设置为120分钟,那么,显然以20分钟为生效的过期时间。

    另外一个值得注意 的地方。

    在设置二处,设置会话超时(SessionState)120分钟,而同时用forms认证,设置为“00:15:00”,即15分钟,并且slidingExpirationo为false,则真正生效的Session过期时间是多少呢?

    有效的结果是SessionState的设置,即120分钟。

    如果有设置Session过期时间没有生效的,请检查以上几处配置。

  • 相关阅读:
    topcoder srm 320 div1
    topcoder srm 325 div1
    topcoder srm 330 div1
    topcoder srm 335 div1
    topcoder srm 340 div1
    topcoder srm 300 div1
    topcoder srm 305 div1
    topcoder srm 310 div1
    topcoder srm 315 div1
    如何统计iOS产品不同渠道的下载量?
  • 原文地址:https://www.cnblogs.com/wangyuelang0526/p/2552945.html
Copyright © 2011-2022 走看看