管理员.JACKY 写道
12:06:56
请各位测一下,多刷几次,看SESSION ID有没有变化?
怎么解决呢?
sessionid是放在cookie中的
客户端没有在后续请求提交上次请求保存的sessionid
解决办法,在web配置文件中,设置cookieless
IE6的一个补丁可能会引起这个问题:http://support.microsoft.com/default.aspx?scid=kb;EN-US;q316112
SessionStateSection.Cookieless 属性
HttpCookieMode值之一。默认值为 false,即使用 Cookie。
备注
唯一 ID 将客户端与服务器会话关联起来,会话状态存储该唯一 ID 的方式有两种:一是在客户端上存储 HTTP Cookie;二是在 URL 中编码会话 ID。将会话 ID 存储在 Cookie 中更为安全,但需要客户端浏览器支持 Cookie。对于允许不支持 Cookie 的客户端的应用程序(例如各种移动设备),可将会话 ID 存储在 URL 中。使用 URL 存在一些缺点。它要求站点上的链接是相对链接,并要求在会话开始时使用新查询字符串值对页进行重定向,而会话 ID 会在查询字符串中公开,因此可能被抽取出来用于实施安全攻击。建议您仅在需要支持缺少 Cookie 支持的客户端时,才使用无 Cookie 模式。会话状态还支持另外两个选项:UseDeviceProfile和AutoDetect。前者使得会话状态模块可基于浏览器功能确定每个客户端使用的模式(Cookie 或无 Cookie)。AutoDetect选项执行一次与浏览器之间的握手,以验证是否可存储 Cookie,因此需要一次附加请求来进行确认。如果您需要支持无 Cookie 客户端,强烈建议您使用UseDeviceProfile仅为需要无 Cookie URL 的客户端生成无 Cookie URL。
下面的代码示例在 Web.config 文件中将 sessionState 元素(ASP.NET 设置架构) 元素的 cookieless 属性 (Attribute) 设置为 true,以便更改 CookieMode 属性 (Property)。对于此示例应用程序配置,CookieMode 属性将返回 UseUri。
复制代码
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
详细的配置参数说明:
http://msdn.microsoft.com/zh-cn/library/h6bb9cz9.aspx
更多的session相关FAQ参见:
http://shyblog.cnblogs.com/
分享到:
相关推荐
标题提到的"asp.net 用sqlserver 实现session共享 (100%成功)",就是一种将ASP.NET的Session存储在SQL Server数据库中的解决方案,这通常被称为State Server或SQL Server Mode的Session管理方式。这种方法允许不同...
本文将详细介绍如何在ASP.NET中配置Session以使用数据库存储,并解释这一过程背后的原理。 ### 配置Session使用数据库存储 在ASP.NET中,可以通过修改Web.config文件中的`<sessionState>`节点来配置Session使用...
- **InProc、StateServer和SQLServer模式**:这些模式允许在客户端禁用Cookie的情况下使用,只需在配置文件中设置`<sessionState cookieless="true"/>`,此时会话ID将会作为URL的一部分传递给服务器。 - **禁用...
7. **Session状态的监控和调试**:通过ASP.NET的诊断工具或自定义日志来监控Session的使用情况,帮助调试问题。 通过学习和实践这个基于ASP.Net的Session处理高级技巧程序例子,开发者可以更好地理解和掌握Session...
ASP.NET 会话超时设置案例详解 在 ASP.NET 编程中,会话超时设置是一个重要的配置项。默认情况下,ASP.NET 会话的超时时间是 20 分钟,当超过 20 分钟没有活动时,服务器将自动放弃会话信息。然而,在实际开发中,...
- **配置错误**:如果`web.config`文件中的`<sessionState>`元素配置不当,比如设置了`cookieless="true"`,那么ASP.NET会默认使用URL重写方式传递会话ID,从而导致URL中出现额外的字符串。 #### 解决方案 1. **...
默认情况下,使用Cookie,但可以设置`cookieless`属性为"true",使ASP.NET使用URL重写技术来传递Session ID。 4. **Session状态的清除**:开发者可以通过`Session.Abandon()`方法手动结束当前用户的Session,清空...
4. **Cookieless Session**:在某些情况下,为了避免跨域问题,可以选择使用cookieless session,即将session信息存储在URL中。这种方式在SSO场景下可能更为合适。 5. **Claims-Based Authentication**:基于声明的...
例如,大型企业可能倾向于使用共享数据库或缓存,而小型项目可能更倾向于简单易行的Cookieless Session或JWT。 在提供的压缩包文件"WebLibrary"中,可能包含了关于实现这些策略的代码示例、配置说明或其他相关资源...
在ASP.NET中,Application对象是用于在整个应用程序范围内存储和共享数据的关键组件。它是一个全局性的存储容器,可以在任何地方访问,且其生命周期贯穿整个应用程序。本文将深入探讨如何利用Application对象来实现...
Maintain state with cookies, cookieless session state, and profiles Localize, configure, package, and deploy ASP.NET applications Use the ASP.NET MVC Framework to improve agility, testability, speed ...
可以使用SessionStateModule、Cookieless会话或第三方库如NHibernate的Session管理来增强安全性。 四、ASP.NET MVC的安全实践 ASP.NET MVC框架提供了更现代的开发模型,其内置的安全特性包括模型绑定器的验证、过滤...
在 ASP.NET 中,Session 是一个重要的概念,它允许开发者在 Web 应用程序中存储用户的状态信息,以便在后续的请求中使用。但是,Session 的配置却是一个复杂的问题。本文将详细介绍如何在 VS.NET 中配置 Session,并...
在Asp.Net应用程序中,Session是一个非常重要的概念,它用于在用户会话期间存储和管理数据。然而,当在程序目录下进行文件夹或文件的操作时,有时可能会导致Session突然失效,这通常是因为Asp.Net的默认配置或者特定...
### 在ASP.NET中实现会话状态基础 #### 知识点概述 在现代Web开发中,维护用户会话状态是一项非常重要的任务。特别是在基于ASP.NET的应用程序中,开发者需要掌握如何管理和利用会话状态来提高应用程序的功能性和...
使用HTTPS加密会话数据,设置合理的会话超时,避免在URL中传递会话ID,考虑使用Cookieless会话或基于Token的会话管理。 6. **错误处理与日志记录**:避免泄露过多的错误信息给用户,可以防止信息泄漏和指导攻击者。...
7. **sessionState**:管理会话状态,可选择在进程中(InProc)、SQL Server数据库中(StateServer)或通过Cookie进行状态维护(cookieless)。 8. **trace**:启用跟踪功能,帮助开发者调试代码,记录请求信息、异常和...