HttpSessionState.SessionID 属性

定义

获取会话的唯一标识符。

public:
 property System::String ^ SessionID { System::String ^ get(); };
public string SessionID { get; }
member this.SessionID : string
Public ReadOnly Property SessionID As String

属性值

String

会话的唯一标识符。

示例

下面的代码示例显示了一个Web.config文件,该文件将会话状态配置为使用无 Cookie 会话标识符。 有关更多信息,请参见 IsCookieless 属性。

<configuration>
  <system.web>
    <sessionState
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

注解

SessionID 属性用于唯一标识服务器上具有会话数据的浏览器。 该值SessionID由 ASP.NET 随机生成,存储在浏览器中的非过期会话 Cookie 中。 然后,该值SessionID在 Cookie 中发送,每个请求都发送到 ASP.NET 应用程序。

如果要禁用 ASP.NET 应用程序中的 cookie 的使用,但仍使用会话状态,可以将应用程序配置为将会话标识符存储在 URL 中,而不是将 sessionState 配置元素的属性设置为true``cookielessUseUri应用程序Web.config文件中。 可以通过为属性指定值 UseDeviceProfile cookieless ASP.NET 来确定浏览器是否支持 cookie。 还可以 ASP.NET 通过指定属性的值AutoDetectcookieless来确定是否为浏览器启用 Cookie。 如果指定或指定时UseDeviceProfileAutoDetect启用 Cookie,则会话标识符将存储在 Cookie 中;否则会话标识符将存储在 URL 中。 有关更多信息,请参见 IsCookieless 属性。

服务器 SessionID 和浏览器之间以明文形式发送,无论是在 Cookie 还是 URL 中。 因此,不需要的源可以通过获取 SessionID 值并将其包含在对服务器的请求中来访问其他用户的会话。 如果要以会话状态存储专用或敏感信息,建议使用 SSL 来加密包含该 SessionID消息的浏览器和服务器之间的任何通信。

使用基于 Cookie 的会话状态时,ASP.NET 在使用对象之前Session不会为会话数据分配存储。 因此,为每个页面请求生成一个新的会话 ID,直到访问会话对象。 如果应用程序需要整个会话的静态会话 ID,则可以在应用程序的 Global.asax 文件中实现 Session_Start 该方法,并将数据存储在对象中 Session 以修复会话 ID,也可以使用应用程序中的另一部分的代码在对象中 Session 显式存储数据。

如果应用程序使用无 Cookie 会话状态,则会在第一页视图中生成会话 ID,并维护整个会话。

适用于

另请参阅