将标头值追加到缓存策略。
语法
virtual HRESULT AppendVaryByHeader(
PCSTR pszHeader
) = 0;
parameters
pszHeader
指向包含要追加的自定义标头的以 null 结尾的字符串的指针。
\- 或 -
NULL。
返回值
HRESULT
。 可能的值包括(但并不限于)下表中的项。
值 | 说明 |
---|---|
S_OK | 指示 pszHeader 为 NULL。\- 或 - 指示 pszHeader 追加到变量标头列表。 |
ERROR_NOT_ENOUGH_MEMORY | 指示堆内存已用尽。 |
E_FAIL | 指示操作失败。 |
备注
注册请求或响应事件的 CHttpModule 派生类接收 IHttpContext 指针作为相应virtual
方法的参数。 若要追加自定义标头,请调用 IHttpContext::GetResponse 方法、 IHttpResponse::GetCachePolicy 方法,最后 AppendVaryByHeader
调用 方法。
AppendVaryByHeader
行为取决于实现。 应将以下信息用作指南,但并非所有方案都正确:
IHttpCachePolicy 接口的当前默认实现程序声明一个private
包含变量标头数据的缓冲区。 在构造实现程序期间,此缓冲区初始化为空。 每次AppendVaryByHeader
调用 时,如果 pszHeader
参数为 NULL,AppendVaryByHeader
则立即返回S_OK。 否则,将展开缓冲区以保存 pszHeader
的副本,包括 null 终止字符,如果缓冲区当前不为空,则加 1。 然后,如果缓冲区不为空,则会将“,”字符追加到缓冲区。 最后,将 的内容 pszHeader
(包括 null 终止字符)追加到缓冲区。
实现者须知
IHttpCachePolicy 实现者负责将 pszHeader
参数复制到缓冲区,因为与 pszHeader
关联的数据在调用 AppendVaryByHeader
后不保证有效。
对调用者的说明
IHttpCachePolicy
客户端负责将 NULL pszHeader
参数或以 null 结尾的字符串传递给 AppendVaryByHeader
方法。 客户端还负责在调用 AppendVaryByHeader
后释放 ,pszHeader
因为IHttpCachePolicy
实现者会复制到pszHeader
内部缓冲区。
默认 IHttpCachePolicy
实现者使用的内部缓冲区是逗号分隔的自定义标头字符串。 因此, pszHeader
不得包含“,”字符。
要求
类型 | 说明 |
---|---|
客户端 | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10 上的 IIS 10.0 |
服务器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016 上的 IIS 10.0 |
产品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
Header | Httpserv.h |