Método ICertServerPolicy::GetCertificateExtensionFlags (certif.h)
O método GetCertificateExtensionFlags recupera os sinalizadores associados à extensão adquirida pela chamada mais recente para GetCertificateExtension.
Sintaxe
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
Parâmetros
[out] pExtFlags
Um ponteiro para uma variável LONG que contém os sinalizadores de extensão.
Retornar valor
C++
Se o método for bem-sucedido, o método retornará S_OK e o parâmetro pExtFlags conterá os sinalizadores da extensão adquirida pela chamada mais recente para GetCertificateExtension.Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.
VB
O valor retornado são os sinalizadores da extensão adquirida pela chamada mais recente para GetCertificateExtension.Comentários
Os métodos SetContext e GetCertificateExtension devem ser chamados antes de GetCertificateExtensionFlags. O método SetContext especifica qual solicitação é usada como o contexto atual e o método GetCertificateExtension recupera as extensões para a solicitação.
As extensões podem conter sinalizadores de política e de origem. Os sinalizadores de política fornecem informações sobre a extensão de certificado. Os sinalizadores de política podem ser definidos pelo módulo de política. Sinalizadores de origem indicam o módulo que define a extensão de certificado. Os sinalizadores de origem são definidos apenas pelo mecanismo de servidor.
Um ou mais sinalizadores de política podem ser retornados de uma extensão. Veja a seguir os sinalizadores de política predefinidos.
Valor do sinalizador de política | Explicação |
---|---|
EXTENSION_CRITICAL_FLAG | Essa é uma extensão crítica. |
EXTENSION_DISABLE_FLAG | A extensão não será usada. |
Um dos sinalizadores de origem a seguir também pode ser retornado.
Valor do sinalizador de origem | Explicação |
---|---|
EXTENSION_ORIGIN_REQUEST | A extensão foi extraída de uma matriz de extensões armazenadas no szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) ou szOID_RSA_certExtensions (1.2.840.113549.1.9.14) de uma solicitação PKCS nº 10. |
EXTENSION_ORIGIN_POLICY | O módulo de política define a extensão. |
EXTENSION_ORIGIN_ADMIN | O administrador definiu a extensão. Para obter mais informações, consulte ICertAdmin::SetCertificateExtension. |
EXTENSION_ORIGIN_SERVER | O mecanismo de servidor define a extensão. |
EXTENSION_ORIGIN_RENEWALCERT | A extensão foi extraída do certificado armazenado no atributo szOID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) de uma solicitação de renovação PKCS nº 10. |
EXTENSION_ORIGIN_IMPORTEDCERT | A extensão foi extraída de um certificado importado (o certificado foi passado para ICertAdmin::ImportCertificate). |
EXTENSION_ORIGIN_PKCS7 | A extensão foi extraída de uma matriz de extensões armazenadas no szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) ou szOID_RSA_certExtensions (1.2.840.113549.1.9.14) de uma solicitação PKCS nº 7. |
Máscaras predefinidas são fornecidas para facilitar o uso na determinação de quais sinalizadores são definidos no valor retornado. As máscaras a seguir são fornecidas.
Valor de máscara | Explicação |
---|---|
EXTENSION_POLICY_MASK | Esse valor (0x0000FFFF) é usado para examinar sinalizadores de política. |
EXTENSION_ORIGIN_MASK | Esse valor (0x000F0000) é usado para examinar sinalizadores de origem. |
É seguro usar os 8 bits altos de EXTENSION_POLICY_MASK para dados personalizados. Esses bits serão salvos persistentemente no banco de dados, mas não serão gravados nas extensões de certificado.
Exemplos
HRESULT hr;
LONG ExtFlags;
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtensionFlags( &ExtFlags);
// More than one policy flag might be set.
LONG ExtPolicyFlags = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPolicyFlags & EXTENSION_CRITICAL_FLAG)
{
// Do something.
}
if (ExtPolicyFlags & EXTENSION_DISABLE_FLAG)
{
// Do something.
}
// only one origin flag can be set
switch (ExtFlags & EXTENSION_ORIGIN_MASK)
{
case EXTENSION_ORIGIN_REQUEST:
// Extension was set in certificate request.
break;
case EXTENSION_ORIGIN_POLICY:
// Extension was set by policy module.
break;
case EXTENSION_ORIGIN_ADMIN:
// Extension was set by administrator.
break;
case EXTENSION_ORIGIN_SERVER:
// Extension was set by server engine.
break;
default:
break;
}
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 | certif.h (inclua Certsrv.h) |
Biblioteca | Certidl.lib |
DLL | Certcli.dll |
Confira também
ICertAdmin::SetCertificateExtension