CookieHandler 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供用于读取、编写和删除会话 Cookie 的抽象基类在 HTTP 客服端上。
public ref class CookieHandler abstract
public abstract class CookieHandler
type CookieHandler = class
Public MustInherit Class CookieHandler
- 继承
-
CookieHandler
- 派生
示例
以下示例将 SAM 配置为使用 类型的 MyNamespace.MyCustomCookieHandler
自定义 Cookie 处理程序。
<cookieHandler mode="Custom">
<customCookieHandler type="MyNamespace.MyCustomCookieHandler, MyAssembly" />
</cookieHandler>
注解
SessionAuthenticationModule (SAM) 使用 类的CookieHandler实例来读取、写入和删除 HTTP 客户端上包含 的 SessionSecurityToken Cookie 或 Cookie。 cookie (或 Cookie,在会话令牌拆分到多个 Cookie 的情况下,) 包含会话令牌的 cookie 称为会话 Cookie。
Windows Identity Foundation (WIF) 附带由 类实现的称为分块 Cookie 处理程序的 ChunkedCookieHandler Cookie 处理程序。 分块 Cookie 处理程序根据指定的区块大小跨一个或多个 Cookie 拆分会话令牌。 这是为了满足许多浏览器对单个 Cookie 的大小限制。
可以从 派生 CookieHandler 来创建自己的 Cookie 处理程序。 执行此操作时,必须重写 DeleteCore、 ReadCore和 WriteCore 方法,以执行删除、读取和写入会话 Cookie 的实际工作。 这些方法通常从集合中读取 Cookie, HttpRequest.Cookies 并通过 HttpResponse.Cookies 集合写入或删除 Cookie。 HttpContext可以访问请求和响应的对象作为其中每个方法的参数提供。 除了必需的方法之外,还可以选择性地重写 类公开 CookieHandler 的其他虚拟方法属性,以自定义处理程序的行为。
类公开了多个属性, CookieHandler 这些属性指定会话 Cookie 的默认行为和属性。 Name、 Domain和 Path 属性提供 Cookie 的基名称、其有效域以及存储在客户端上的路径。 属性 HideFromClientScript 指定客户端脚本是否可以访问 Cookie。 属性 RequireSsl 指定是否应仅通过安全 (HTTPS) 连接传输 Cookie。 如果已设置, PersistentSessionLifetime 属性用于设置持久会话的过期时间,即对于即使在浏览器关闭后仍然有效的会话。 所有这些属性都具有通常在基础 HttpCookie 对象 (或由处理程序的“核心”方法) 的对象上设置的等效属性。 有关详细信息,请参阅每个属性的文档。
SAM 使用的 Cookie 处理程序可以通过 cookieHandler> 元素在配置<中指定。 此元素设置的 Cookie 处理程序可以在事件委托中修改, FederatedAuthentication.FederationConfigurationCreated 也可以通过 SessionAuthenticationModule.CookieHandler 属性直接设置或访问该处理程序。
构造函数
CookieHandler() |
从派生类中的构造函数中调用,用于初始化 CookieHandler 类。 |
属性
Domain |
获取或设置用于 Cookie 的域。 |
HideFromClientScript |
获取或设置一个值,该值指示是否应该从客户端脚本隐藏 Cookie。 |
Name |
获取或设置处理程序编写的 Cookie 的基名称。 |
Path |
获取或设置处理程序编写的 Cookie 的虚拟路径。 |
PersistentSessionLifetime |
永久会话的生存期。 如果为零,将始终使用瞬变会话。 |
RequireSsl |
获取或设置一个值,该值指定是否应只用 SSL 验证 Cookie。 |
方法
Delete() |
读取与当前请求相关的 cookie,该请求具有默认名称、域和路径。 |
Delete(HttpContext) |
读取与当前请求相关的 cookie,该请求具有默认名称、域和路径。 |
Delete(String) |
删除与指定请求相关的 cookie,该请求具有当前名称和默认的域和路径。 |
Delete(String, HttpContext) |
删除与指定请求相关的 cookie,该请求具有指定名称和默认的域和路径。 |
Delete(String, String, String, HttpContext) |
删除与指定请求相关的 cookie,该请求具有指定名称、路径和域。 |
DeleteCore(String, String, String, HttpContext) |
当在派生类中重写时,删除与指定请求(具有指定名称、域和路径)关联的 cookie。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MatchCookiePath(Uri, Uri) |
如果目标域在 Cookie 域中,且目标路径在 Cookie 路径中,则对 Cookie 路径中的大小写进行匹配。 |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
Read() |
读取与当前请求相关的 cookie,该请求具有默认名称。 |
Read(HttpContext) |
读取与当前请求相关的 cookie,该请求具有默认名称、域和路径。 |
Read(String) |
读取与当前请求相关的 cookie,该请求具有指定名称。 |
Read(String, HttpContext) |
读取与指定请求相关的 cookie,该请求具有指定名称和默认的域和路径。 |
ReadCore(String, HttpContext) |
当在派生类中重写时,将读取与具有指定名称和指定请求关联的 cookie。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
Write(Byte[], Boolean, DateTime) |
写入当前请求(具有指定值、持久性和过期时间)关联的 cookie,。 |
Write(Byte[], String, DateTime) |
写入当前请求(具有指定名称、值和过期时间)关联的 cookie,。 |
Write(Byte[], String, DateTime, HttpContext) |
写入指定请求(具有指定名称、值和过期时间)关联的 cookie,。 |
Write(Byte[], String, String, String, DateTime, Boolean, Boolean, HttpContext) |
写入指定请求(具有指定名称、值、域、路径、过期时间和可见性)关联的 cookie,。 |
WriteCore(Byte[], String, String, String, DateTime, Boolean, Boolean, HttpContext) |
当在派生类中重写时,写入与指定请求(具有指定名称、值、域、路径、过期时间、持久性和可见性)关联的 cookie。 |