Метод IHttpCachePolicy::AppendVaryByHeader
Добавляет значение заголовка в политику кэша.
Синтаксис
virtual HRESULT AppendVaryByHeader(
PCSTR pszHeader
) = 0;
Параметры
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
При каждом вызове немедленно возвращается S_OK, AppendVaryByHeader
если pszHeader
параметр имеет значение NULL. В противном случае буфер развертывается для хранения копии pszHeader
, включая символ завершения null, плюс 1, если буфер в настоящее время не пуст. Затем, если буфер не пуст, к буферу добавляется символ ",". Наконец, содержимое pszHeader
, включая символ завершения null, добавляется в буфер.
Примечания для разработчиков
Разработчики IHttpCachePolicy отвечают за копирование pszHeader
параметра в буфер, так как данные, связанные с pszHeader
, не гарантируются допустимыми после вызова AppendVaryByHeader
.
Примечания для вызывающих абонентов
IHttpCachePolicy
клиенты отвечают за передачу в метод либо параметр NULLpszHeader
, либо строку, завершаемую null.AppendVaryByHeader
Клиенты также отвечают за удаление pszHeader
после вызова AppendVaryByHeader
, так как IHttpCachePolicy
реализующие копируют pszHeader
во внутренний буфер.
Внутренний буфер, используемый реализацией по умолчанию IHttpCachePolicy
, представляет собой строку пользовательских заголовков с разделителями-запятыми. pszHeader
Поэтому не должен содержать символ ",".
Требования
Тип | Описание |
---|---|
клиент | — IIS 7.0 в Windows Vista — IIS 7.5 в Windows 7 — IIS 8.0 в Windows 8 — IIS 10.0 в Windows 10 |
Сервер | — IIS 7.0 в Windows Server 2008 — IIS 7.5 в Windows Server 2008 R2 — IIS 8.0 в Windows Server 2012 — IIS 8.5 в Windows Server 2012 R2 — IIS 10.0 в Windows Server 2016 |
Продукт | — 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 |
Заголовок | Httpserv.h |