IHttpRequest::NegotiateClientCertificate Method

IIS 7.0
 

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.

Example

The following example demonstrates how to call NegotiateClientCertificate method.

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.

Requirements

Type

Description

Client

  • IIS 7.0 on Windows Vista

  • IIS 7.5 on Windows 7

  • IIS 8.0 on Windows 8

  • IIS 10.0 on Windows 10

Server

  • IIS 7.0 on Windows Server 2008

  • 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 Technical Preview

Product

  • 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

Show: