为会话状态配置自动检测 Cookie 模式 (IIS 7)
2012-09-20 09:25
1016 查看
应用到: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
在自动检测 Cookie 模式下,如果移动设备配置文件支持 Cookie,则使用 Cookie,否则不使用 Cookie。 对于已知支持 Cookie 的桌面浏览器,当在其中启用 Cookie 支持时,ASP.NET 将尝试使用 Cookie。 如果禁用 Cookie 支持,会话状态将存储在 URL 中。
当使用“自动检测”Cookie 模式时,应该要求重新生成过期的会话 ID。 这样做会使 Web 服务器废弃原有的令牌并重新生成令牌,从而缩短了潜在攻击者捕获 Cookie 并访问 Web 服务器内容的时间。 您还应当考虑将超时值更改为小于默认的 20 分钟。
功能要求方面的例外情况
无
在“功能视图”中,双击“会话状态”。
在“会话状态”页的“Cookie 设置”区域中,从“模式”下拉列表中选择“自动检测”。
在“名称”文本框中键入一个 Cookie 名称,或使用默认的 Cookie 名称 ASP.NET_SessionId。
在“超时”文本框中键入一个超时值,或采用默认的超时值 20 分钟。
选中“重新生成过期的会话 ID”,然后在“操作”窗格中单击“应用”。
appcmd set config /commit:WEBROOT /section:sessionState /cookieless:AutoDetect /cookieName:string /timeout:timeSpan/regenerateExpiredSessionId:True|False
变量 cookieless:AutoDetect 用于将 IIS 7 配置为对会话状态使用自动检测 Cookie 模式。 变量 string 是 Cookie 的名称。 默认值为 ASP.NET_SessionId。 变量timeSpan 用于设置 Cookie 的超时值,单位为分钟。 默认值为 20 分钟。 变量 regenerateExpiredSessionId:True|False 用于指定是否重新生成过期的会话 ID。
有关 Appcmd.exe 的详细信息,请参阅 Appcmd.exe (IIS 7) 。
<sessionState>
<sessionPageState>
有关 IIS 7 配置的详细信息,请参阅 MSDN 上的 IIS 7.0:IIS 设置架构(可能为英文页面)。
SessionStateSection.Cookieless 属性“AutoDetect”标志
有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)。
在自动检测 Cookie 模式下,如果移动设备配置文件支持 Cookie,则使用 Cookie,否则不使用 Cookie。 对于已知支持 Cookie 的桌面浏览器,当在其中启用 Cookie 支持时,ASP.NET 将尝试使用 Cookie。 如果禁用 Cookie 支持,会话状态将存储在 URL 中。
当使用“自动检测”Cookie 模式时,应该要求重新生成过期的会话 ID。 这样做会使 Web 服务器废弃原有的令牌并重新生成令牌,从而缩短了潜在攻击者捕获 Cookie 并访问 Web 服务器内容的时间。 您还应当考虑将超时值更改为小于默认的 20 分钟。
先决条件
有关您可以在哪些级别执行此过程以及执行此过程所需的模块、处理程序和权限的信息,请参阅 会话状态功能要求 (IIS 7)。功能要求方面的例外情况
无
为会话状态配置自动检测 Cookie 模式
您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。用户界面
使用 UI
打开 IIS 管理器,然后导航至您要管理的级别。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 有关如何在 UI 的各个位置间进行导航的信息,请参阅 在 IIS 管理器中导航 (IIS 7)。在“功能视图”中,双击“会话状态”。
在“会话状态”页的“Cookie 设置”区域中,从“模式”下拉列表中选择“自动检测”。
在“名称”文本框中键入一个 Cookie 名称,或使用默认的 Cookie 名称 ASP.NET_SessionId。
在“超时”文本框中键入一个超时值,或采用默认的超时值 20 分钟。
选中“重新生成过期的会话 ID”,然后在“操作”窗格中单击“应用”。
命令行
若要为会话状态配置自动检测 Cookie 模式,请使用以下语法:appcmd set config /commit:WEBROOT /section:sessionState /cookieless:AutoDetect /cookieName:string /timeout:timeSpan/regenerateExpiredSessionId:True|False
变量 cookieless:AutoDetect 用于将 IIS 7 配置为对会话状态使用自动检测 Cookie 模式。 变量 string 是 Cookie 的名称。 默认值为 ASP.NET_SessionId。 变量timeSpan 用于设置 Cookie 的超时值,单位为分钟。 默认值为 20 分钟。 变量 regenerateExpiredSessionId:True|False 用于指定是否重新生成过期的会话 ID。
备注 |
---|
在 IIS 7 中使用 Appcmd.exe 在全局级别配置 <sessionState> 元素时,必须在命令中指定 /commit:WEBROOT,以便对根 Web.config 文件而不是对 ApplicationHost.config 进行配置更改。 |
配置
本主题中的过程会影响以下配置元素:<sessionState>
<sessionPageState>
有关 IIS 7 配置的详细信息,请参阅 MSDN 上的 IIS 7.0:IIS 设置架构(可能为英文页面)。
WMI
请使用以下 WMI 类、方法或属性执行此过程:SessionStateSection.Cookieless 属性“AutoDetect”标志
有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)。
另请参阅
相关文章推荐
- 在无cookie模式中,会话话状态的ID将会自动保存在ASP.NET的查询字符串中
- 在无cookie模式中,会话话状态的ID将会自动保存在ASP.NET的查询字符串中
- IIS部署ASP.NET网站后提示只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态...
- ipvsadm-2 DR模式及自动检测后端服务器状态
- 在配置win7 IIS浏览网站时 检测到在集成的托管管道模式下不适用的ASP.NET设置 的解决方法
- 帧中继LMI自动检测详细配置
- Sql2005自动备份并邮件通知状态之一配置数据库邮件
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 / / 节中包括 .
- 关于启明星系统移除apppath配置,让系统自动获取路径来设置cookie的解决方法
- 检测tomcat服务状态,并能自动重启的代码
- 开机自动打开USB调试模式和配置android为USB OTA模式
- JavaEE实战——会话与状态 Cookie_Session
- 中国特色管理类软件项目开发之通用权限必杀技 -- 权限自由配置设定、实现智能化自动检测校验
- 数据库处于suspect状态(执行sp_helpdb检测),无法自动恢复的处理
- 域环境下配置squid的IE代理自动检测设置
- 无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。
- 如何实现 linux 在 命令行模式(init 3)状态下不用输入用户名自动登陆
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionStateMod 或自定义会话状态模块 -
- 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序