在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置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的过期时间,可以用
- 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>
以上四处设置的优先级为页面级>应用程序级>网站级>服务器级。换句话说,如果页面设置为20分钟,网站设置为120分钟,那么,显然以20分钟为生效的过期时间。
另外一个值得注意 的地方。
在设置二处,设置会话超时(SessionState)120分钟,而同时用forms认证,设置为“00:15:00”,即15分钟,并且slidingExpirationo为false,则真正生效的Session过期时间是多少呢?
有效的结果是SessionState的设置,即120分钟。
如果有设置Session过期时间没有生效的,请检查以上几处配置。
分享到:
相关推荐
方法一: 在后台应用程序中设置:Session.Timeout = 1; 注意:1、此方法可以设置在一个... 您可能感兴趣的文章:php 如何设置一个严格控制过期时间的sessionjava设置session过期时间的实现方法php中实现精确设置se
本文将详细探讨几种常见的***中session过期判断方法,并对它们进行比较分析。 首先,最常见的方法是在每个页面的Page_Load()方法中进行session过期判断。这种方法在每次页面加载时都会执行一次session检查,虽然...
2. **Cookie或隐藏字段**:通常,服务器通过设置一个名为ASP.NET_SessionId的Cookie来跟踪客户端的会话。这个Cookie包含了服务器用来识别会话的唯一ID。如果客户端禁用了Cookie,ASP.NET还可以通过URL重写技术将...
Session是ASP.NET提供的一种在用户会话期间存储用户特定数据的方法。当用户打开一个网站并开始浏览时,一个新的Session就会被创建。每个Session都有一个唯一的ID,这个ID通过cookie(默认)或者URL重写等方式发送到...
在ASP.NET中,Session是一种用于跨页面请求保持用户状态的技术,它允许开发人员在服务器端存储用户特定的信息。然而,默认情况下,Session数据是存储在内存中的,这可能会导致一些问题,比如当应用程序需要处理大量...
### 在ASP.NET中使用Session常见问题集锦 #### Session为何会丢失? 在ASP.NET应用程序中,用户的状态(Session)有时会出现丢失的情况。这种情况的发生可能是由于多种原因造成的,比如应用程序池的回收、Session...
在ASP.NET中,Session是一个关键的特性,它用于存储用户在浏览网页过程中的状态信息,例如用户登录状态、购物车内容等。本资源将介绍如何利用Session来实现一个购物车功能,特别地,这个购物车是通过链表结构来管理...
除了在`web.config`文件中全局设置外,你还可以在特定的ASP.NET页面中或者在代码逻辑中动态设置Session的超时时间,如下所示: ```csharp Session.Timeout = 60; ``` 这行代码会在当前页面上下文中设置...
在ASP.NET中,每个用户都有一个唯一的SessionID,服务器通过这个ID来识别和跟踪用户。当用户添加商品到购物车时,这些信息被存储在服务器的Session对象中。这种方式能存储更多数据,且对用户更安全,因为数据不会...
ASP.NET中的Session是Web应用程序中一种非常重要的状态管理机制,它允许开发者在多个网页之间保持用户的特定信息。Session主要用于解决HTTP协议无状态的问题,确保用户在浏览网站时能维持其个性化设置、购物车数据或...
在ASP.NET中,Session是一个非常重要的概念,它用于在用户的不同请求之间保持状态信息。Session对象允许开发者存储和检索特定用户的变量,即使用户在网站上导航到不同的页面,这些信息也能被保留。在JSP中,Session...
5. **管理购物车状态**:为了防止Session过期导致购物车数据丢失,可以设置合适的Session超时时间,并提供恢复购物车内容的选项。此外,还可以考虑在用户登录后将购物车数据与用户账户关联,这样即使Session失效,...
ASP.NET中的Session是Web应用程序中用于存储用户特定信息的关键机制,它允许开发者在用户的不同页面请求之间保持数据。Session处理是构建动态、交互性强的网站的重要组成部分,尤其是在处理用户登录状态、购物车信息...
4. **Session管理**:为了防止过多的数据存储在Session中导致内存占用过高,需要设置合理的Session过期时间。此外,还要处理用户突然关闭浏览器或取消会话的情况,确保购物车数据的安全和准确性。 在实际开发中,...
总结来说,ASP.NET的Session机制为我们提供了一种有效的方法来保存用户查询条件,使得用户在浏览网站时能保持其个性化设置。然而,合理使用和管理Session至关重要,以免对服务器资源造成过度消耗。同时,开发者应...
ASP.NET Core Session是微软开发的一种在Web应用程序中存储和管理用户会话状态的技术。它允许开发者在用户浏览器的不同请求之间保持数据,这对于实现购物车、用户登录状态等常见功能至关重要。在ASP.NET Core中,...
当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一...
ASP.NET状态管理是Web开发中的核心概念,它用于在客户端和服务器之间持久化数据,确保用户在浏览网站时保持特定的上下文。本篇将详细探讨四种主要的状态管理技术:Cookies、Session、ViewState和Application。 **...
【SESSION与COOKIE】ASP.NET中的SESSION用于存储用户会话信息,而COOKIE用于持久化数据。写入SESSION和COOKIE时需要注意类型转换,读取时可以直接获取存储的值。通过设置COOKIE的过期时间,可以控制其有效期。 这个...