| title | IHttpRequest::NegotiateClientCertificate Method |
|---|---|
| description | Describes the IHttpRequest::NegotiateClientCertificate method and details its syntax, parameters, return value, remarks, and requirements. |
| ms.date | 10/07/2016 |
| ms.assetid | c140602f-90ef-75b2-ce8e-676a3b8a722f |
Initiates client certificate negotiation with a Web client.
HRESULT NegotiateClientCertificate(
IN BOOL fAsync,
OUT BOOL* pfCompletionPending = NULL
) fAsync
[IN] true to specify that negotiation should occur asynchronously; otherwise, false.
pfCompletionPending
[OUT] true to specify that an asynchronous completion is pending; otherwise, false.
An HRESULT. Possible values include, but are not limited to, those in the following table.
| Value | Definition |
|---|---|
| S_OK | Indicates that the operation was successful. |
| E_FAIL | Indicates that the operation failed. |
Developers can use the NegotiateClientCertificate method to manually initiate client certificate negotiation with a Web client, even if IIS is configured to accept or ignore client certificates. NegotiateClientCertificate supports both synchronous and asynchronous operation by specifying the appropriate setting in the fAsync parameter. When your module calls NegotiateClientCertificate asynchronously, the module must return processing to the integrated request-processing pipeline immediately after calling the method if the pfCompletionPending value indicates that an asynchronous completion is pending.
The following example demonstrates how to call NegotiateClientCertificate method.
[!code-cppIHttpRequestGetClientCertificate#1]
For more information on how to create and deploy a native DLL module, 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.
| 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 |
IHttpRequest Interface
IHttpRequest::GetClientCertificate Method