Compartilhar via


Método ICertAdmin::D enyRequest (certadm.h)

O método DenyRequest nega uma solicitação de certificado especificada pendente. Esse método foi definido pela primeira vez na interface ICertAdmin .

Para que esse método seja bem-sucedido, a solicitação de certificado deve estar pendente.

Sintaxe

HRESULT DenyRequest(
  [in] const BSTR strConfig,
  [in] LONG       RequestId
);

Parâmetros

[in] strConfig

Representa uma cadeia de caracteres de configuração válida para a AC (autoridade de certificação ) no formato COMPUTERNAME\CANAME, em que COMPUTERNAME é o nome de rede do servidor de Serviços de Certificados e CANAME é o nome comum da autoridade de certificação, conforme inserido durante a instalação dos Serviços de Certificados. Para obter informações sobre a cadeia de caracteres de configuração, consulte ICertConfig.

ImportanteDenyRequest não limpa o cache interno quando a cadeia de caracteres de configuração é alterada. Ao alterar a cadeia de caracteres de configuração para a AC, você deve instanciar um novo objeto ICertAdmin e chamar esse método novamente com a nova cadeia de caracteres de configuração.
 

[in] RequestId

Especifica a ID da solicitação pendente a ser negada.

Retornar valor

Nenhum

Comentários

As tarefas de administração usam o DCOM. O código que chama esse método de interface conforme definido em uma versão anterior do Certadm.h será executado em servidores baseados no Windows, desde que o cliente e o servidor estejam executando o mesmo sistema operacional Windows.

Exemplos

O exemplo a seguir declara as variáveis necessárias, inicializa COM e cria uma instância da classe CertAdmin. Em seguida, ele chama DenyRequest e imprime êxito ou falha na tela. Por fim, ele libera recursos.

//  Pointer to an interface object.
ICertAdmin * pCertAdmin = NULL;

    BSTR       bstrCA = NULL;  // variable for machine\CAName
    long       nReqID;         // variable for Request ID
    HRESULT    hr;

    //  Initialize COM.
    hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    if (FAILED(hr))
    {
        printf("Failed CoInitializeEx [%x]\n", hr);
        goto error;
    }

    //  Create the CertAdmin object
    //  and get a pointer to its ICertAdmin interface.
    hr = CoCreateInstance( CLSID_CCertAdmin,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertAdmin,
                           (void **)&pCertAdmin);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
        goto error;
    }

    //  Note the use of two '\' in C++ to produce one '\'.
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (NULL == bstrCA)
    {
        printf("Failed to allocate memory for bstrCA\n");
        goto error;
    }

    //  nReqID is RequestID to be denied.
    nReqID = <REQUESTIDHERE>;

    //  Deny the request.
    hr = pCertAdmin->DenyRequest( bstrCA, nReqID );
    if (FAILED(hr))
    {
        printf("Failed DenyRequest %ws %d [%x]\n",
               bstrCA, nReqID, hr);
        goto error;
    }
    else
        printf("Denied request %ws %d\n",
                bstrCA, nReqID );

    //  Done processing.

    
error:

    //  Free BSTR values.
    if (NULL != bstrCA)
        SysFreeString(bstrCA);

    //  Clean up object resources.
    if (NULL != pCertAdmin)
        pCertAdmin->Release();

    //  Free COM resources.
    CoUninitialize(); 

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certadm.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certadm.dll

Confira também

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig