SessionStateSection.Cookieless 属性

定义

获取或设置一个值,该值指示是否使用 Cookie 标识客户端会话。

public:
 property System::Web::HttpCookieMode Cookieless { System::Web::HttpCookieMode get(); void set(System::Web::HttpCookieMode value); };
[System.Configuration.ConfigurationProperty("cookieless")]
public System.Web.HttpCookieMode Cookieless { get; set; }
[<System.Configuration.ConfigurationProperty("cookieless")>]
member this.Cookieless : System.Web.HttpCookieMode with get, set
Public Property Cookieless As HttpCookieMode

属性值

如果所有请求都被视为无 Cookie,则为 true;如果没有任何请求被视为无 Cookie,则为 false;或者为 HttpCookieMode 值之一。 在 ASP.NET 2.0 版中,默认值为 AutoDetect。 在早期版本中,默认值为 false

属性

示例

下面的代码示例演示如何获取 Cookieless 属性。 请参阅类主题中的 SessionStateSection 代码示例,了解如何访问 对象 SessionStateSection

// Display the current Cookieless property value.
Console.WriteLine("Cookieless: {0}",
  sessionStateSection.Cookieless);
' Display the current Cookieless property value.
Console.WriteLine("Cookieless: {0}", sessionStateSection.Cookieless)

注解

会话状态可通过两种方式来存储将客户端与服务器会话关联的唯一 ID:在客户端上存储 HTTP Cookie 或在 URL 中对会话 ID 进行编码。 将会话 ID 存储在 Cookie 中更安全,但需要客户端浏览器支持 Cookie。

对于允许不支持 Cookie 的客户端的应用程序(例如各种移动设备),会话 ID 可能存储在 URL 中。 URL 选项有几个缺点。 它要求网站上的链接是相对的,并且页面在会话开始时使用新的查询字符串值重定向,并且它直接在查询字符串中公开会话 ID,可以在其中选取它以用于安全攻击。

仅当需要支持缺少 Cookie 支持的客户端时,才鼓励你使用无 Cookie 模式。

会话状态还支持两个附加选项: UseDeviceProfileAutoDetect。 前者使会话状态模块可以根据浏览器功能确定每个客户端使用哪种模式 (cookie 或无 cookie) 。 选项 AutoDetect 与浏览器进行握手以验证是否可以存储 Cookie,因此需要额外的请求才能做出确定。 如果需要支持无 Cookie 客户端,强烈建议使用 UseDeviceProfile 仅针对需要无 Cookie 的客户端生成无 Cookie URL。

注意

与 UP。浏览器 4.1 或 UP。浏览器 3.2 的行为Redirect始终与 对象的 false属性值HttpBrowserCapabilities一样SupportsRedirectWithCookie,除非 Cookieless Web.config 节中的 SessionState 属性已显式设置为 true

在 ASP.NET 版本 1.1 中,此设置的选项为 truefalse,但在 ASP.NET 2.0 中,选项已展开,现在是 AutoDetect 默认设置。 如果 Web 应用程序的 Cookieless 属性设置为布尔值,则 Redirect 这些浏览器应按预期工作。

适用于

另请参阅