| title | IHttpTokenEntry Interface |
|---|---|
| description | Describes the IHttpTokenEntry interface and details its syntax, methods, remarks, code example, inheritance hierarchy, and requirements. |
| ms.date | 10/07/2016 |
| ms.assetid | a7244321-a081-c31a-69fc-c78ce0380226 |
Extends the IHttpCacheSpecificData interface by adding token-specific information for tokens that are cached on a server.
class IHttpTokenEntry : public IHttpCacheSpecificData The following table lists the methods exposed by the IHttpTokenEntry class.
| Name | Description |
|---|---|
| DecrementTTL | (Inherited from IHttpCacheSpecificData.) |
| DereferenceCacheData | (Inherited from IHttpCacheSpecificData.) |
| GetCacheKey | (Inherited from IHttpCacheSpecificData.) |
| GetFlushed | (Inherited from IHttpCacheSpecificData.) |
| GetImpersonationToken | Returns the impersonation token for a user. |
| GetPrimaryToken | Returns the primary token for the process that is servicing a request. |
| GetSid | Returns the security identifier for a user. |
| ReferenceCacheData | (Inherited from IHttpCacheSpecificData.) |
| ResetTTL | (Inherited from IHttpCacheSpecificData.) |
| SetFlushed | (Inherited from IHttpCacheSpecificData.) |
This interface contains no derived classes.
CGlobalModule derived classes that register for GL_CACHE_OPERATION events receive an ICacheProvider pointer as a parameter on the CGlobalModule::OnGlobalCacheOperationvirtual method. You can retrieve an IHttpCacheSpecificData pointer by calling the ICacheProvider::GetCacheRecord method and, in some cases, you can downcast this IHttpCacheSpecificData pointer to an IHttpTokenEntry pointer.
For more information on downcast rules, see ICacheProvider::GetCacheRecord.
The following code example demonstrates how to create a global module that listens for GL_CACHE_OPERATION and GL_CACHE_CLEANUP events and then writes the IHttpTokenEntry information to the Event Viewer.
Caution
[!INCLUDEiisver] generates a large number of events in the Event Viewer. To avoid a log overflow error in a production environment, you should generally avoid writing cache information to the event log. For demonstration purposes, this code example writes an entry to the Event Viewer in debug mode only.
[!code-cppIHttpTokenEntry#1]
The above code writes a new event to the Event Viewer, where the Data box holds XML similar to the following.
<cacheProvider>
<tokenEntry
impersonationToken="valid"
primaryToken="valid"
sid="true"/>
</cacheProvider>
Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.
You can optionally compile the code by using the __stdcall (/Gz) calling convention instead of explicitly declaring the calling convention for each function.
IHttpTokenEntry
| Type | Description |
|---|---|
| Client | - IIS 7.0 on [!INCLUDEwinvista] - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
| Server | - IIS 7.0 on [!INCLUDEwinsrv2008] - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
| Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100] |
| Header | Httpserv.h |