现在的位置: 首页 > 综合 > 正文

使用导致获得其它用户cookies值

2013年10月23日 ⁄ 综合 ⁄ 共 1022字 ⁄ 字号 评论关闭
考虑以下方案。 Microsoft ASP.NET 页包含 < % OutputCache % > 指令。 此外, ASP.NET 页面生成包含 Cookie 设置 - 响应一个 HTTP 头。 在此方案, HTTP 协议堆栈 (HTTP.sys) 内核缓存 Microsoft Internet Information Services (IIS) 6.0 中存储 ASP.NET 页。 因此, 谁访问同一页多用户可能收到相同 Cookie。


替代方法


要解决此问题, 根据适合您情况使用下列方法, 之一。


方法 1: 禁用内核缓存模式


可禁用缓存整个系统, 内核模式或者您可以禁用内核模式对于特定 ASP.NET 应用程序缓存。 此方法解决首选方法是因为仍可使用输出缓存 ASP.NET 应用程序中。 要禁用内核缓存模式, 请按照下列步骤:

1. 如果要禁用缓存整个系统, 内核模式打开 Machine.config 配置文件。 此文件位于以下文件夹中:

驱动器 : /WINDOWS/Microsoft .NET/Framework/ Version /CONFIG

注意 驱动器 是代表操作系统安装驱动器占位符。 版本 是一个占位符, 代表已安装 Microsoft.NET 框架的版本号。

如果要禁用缓存为特定 ASP.NET 应用程序, 内核模式打开 Web.config 配置文件。 此文件位于 ASP.NET 应用程序文件夹中。

2. 在配置文件, 找到 < httpRuntime > 元素, 并然后添加以下属性:

enableKernelOutputCache = " false "


方法 2: 禁用特定 ASP.NET 页面中输出缓存


禁用特定 ASP.NET 页面生成包含 Cookie 设置 - 响应一个 HTTP 头中输出缓存。 但是, 必须确定整个应用程序可能生成一个 Cookie 中每个 ASP.NET 页。 例如, 如果使用 Cookie 来维护会话状态, 用户访问任何页面可能生成一个 cookie。

要禁用特定 ASP.NET 页面, 中输出缓存从任何 .aspx 文件, 您不想缓存删除 < % OutputCache % > 指令。 有关 < % OutputCache % > 指令在 ASP.NET 页, 请访问 Microsoft Developer Network (MSDN) Web 站点: http://msdn2.microsoft.com/en-us/library/zd1ysf1y(VS.80).aspx
 

抱歉!评论已关闭.