Método IWinHttpRequest::SetClientCertificate

El método SetClientCertificate selecciona un certificado de cliente para enviarlo a un servidor de Protocolo de transferencia de hipertexto seguro (HTTPS).

Sintaxis

HRESULT SetClientCertificate(
  [in] BSTR ClientCertificate
);

Parámetros

ClientCertificate [in]

Especifica la ubicación, el almacén de certificados y el asunto de un certificado de cliente.

Valor devuelto

El valor devuelto se S_OK si se ejecuta correctamente o un valor de error de lo contrario.

Observaciones

La cadena especificada en el parámetro ClientCertificate consta de la ubicación del certificado, el almacén de certificados y el nombre del firmante delimitados por barras diagonales inversas. Para obtener más información sobre los componentes de la cadena de certificado, vea Certificados de cliente.

El nombre y la ubicación del almacén de certificados son opcionales. Sin embargo, si especifica un almacén de certificados, también debe especificar la ubicación de ese almacén de certificados. La ubicación predeterminada es CURRENT_USER y el almacén de certificados predeterminado es "MY". Un asunto en blanco indica que se debe usar el primer certificado del almacén de certificados.

Llame a SetClientCertificate para seleccionar un certificado antes de llamar a Send para enviar la solicitud.

Los servicios HTTP de Microsoft Windows (WinHTTP) no proporcionan certificados de cliente a servidores proxy que solicitan certificados para la autenticación.

Nota

Para Windows XP y Windows 2000, consulte la sección Requisitos en tiempo de ejecución de la página de inicio de WinHTTP.

Ejemplos

En el ejemplo de scripting siguiente se muestra cómo seleccionar un certificado de cliente para enviar con una solicitud. Se elige un certificado con el asunto "Mi certificado de Middle-Tier" del almacén de certificados "Personal" en el registro en HKEY_LOCAL_MACHINE. Dado que este ejemplo de código es específico de Microsoft JScript, que usa la barra diagonal inversa como carácter de escape, se requieren dos barras diagonales inversas adyacentes para delimitar los componentes de la cadena de certificado.

// Instantiate a WinHttpRequest object.
var HttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
    
// Open an HTTP connection.
HttpReq.Open("GET", "https://www.fabrikam.com/", false);
    
// Select a client certificate.
HttpReq.SetClientCertificate(
            "LOCAL_MACHINE\\Personal\\My Middle-Tier Certificate");

// Send the HTTP Request.
HttpReq.Send();

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio]
Redistribuible
WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000.
IDL
HttpRequest.idl
Biblioteca
Winhttp.lib
Archivo DLL
Winhttp.dll

Vea también

IWinHttpRequest

WinHttpRequest

SSL en WinHTTP

Versiones winHTTP