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

属性值

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显式设置为trueWeb.config节中的SessionState属性。

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

适用于

另请参阅