ICertAdmin::SetRequestAttributes メソッド (certadm.h)
SetRequestAttributes メソッドは、指定された保留中の証明書要求に属性を設定します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。
このメソッドを成功させるには、証明書要求が保留中である必要があります。
構文
HRESULT SetRequestAttributes(
[in] const BSTR strConfig,
[in] LONG RequestId,
[in] const BSTR strAttributes
);
パラメーター
[in] strConfig
COMPUTERNAME\CANAME という形式の 証明機関 (CA) サーバーの有効な構成文字列を表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力された証明機関の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。
[in] RequestId
属性を受信する要求の ID を指定 します。
[in] strAttributes
属性データを指定します。 各属性は、名前と値の文字列のペアです。 コロン文字は名前と値を区切り、改行文字は複数の名前と値のペアを区切ります。次に例を示します。
C++ | AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2 |
VB | AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2 |
証明書サービスは、属性名を解析するときに、スペース、ハイフン (マイナス記号)、大文字と小文字を無視します。 たとえば、 AttributeName1、 Attribute Name1、 Attribute-name1 はすべて同等です。 属性値の場合、Certificate Services は先頭と末尾の空白を無視します。
戻り値
VB
メソッドが成功した場合、メソッドは S_OKを返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。
注釈
SetRequestAttributes を呼び出して追加または更新された属性は、証明書要求に関連付けられている最初の未解析の属性文字列を変更しません。 証明書要求の解析されていない属性文字列は、証明書が要求された後は変更できません ( ICertRequest::Submit メソッドでは、証明書が要求された時点で属性を指定できます)。
証明機関 MMC スナップインを使用して、解析されていない最初の要求属性文字列を表示できます。
解析された属性を表示すると、 SetRequestAttributes の呼び出しによる変更も表示されます。
解析された属性を表示するには
- 証明機関 MMC スナップインを開きます。
- [保留中の要求] フォルダーを開きます。
- 要求を右クリックし、[ すべてのタスク] をポイントして、[ 属性/拡張機能の表示] をクリックします。
管理タスクでは DCOM を使用します。 以前のバージョンの Certadm.h で定義されているこのインターフェイス メソッドを呼び出すコードは、クライアントとサーバーの両方が同じ Windows オペレーティング システムを実行している限り、Windows ベースのサーバー上で実行されます。
例
BSTR bstrAttribs = NULL;
BSTR bstrCA = NULL;
long nReqID; // request ID
// Specify the attributes.
// For example, "AttName1:AttValue1\nAttName2:AttValue2".
bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
if (NULL == bstrAttribs)
{
printf("Memory allocation failed for bstrAttribs.\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed for bstrCA.\n");
goto error;
}
// Request ID to receive the attributes.
nReqID = <REQUESTIDHERE>;
// Add these attributes to the certificate.
// pCertAdmin is a previously instantiated
// ICertAdmin object pointer.
hr = pCertAdmin->SetRequestAttributes( bstrCA,
nReqID,
bstrAttribs );
if (FAILED(hr))
printf("Failed SetRequestAttributes [%x]\n", hr);
else
printf("SetRequestAttributes succeeded\n");
// Done processing.
error:
if (bstrAttribs)
SysFreeString(bstrAttribs);
if (bstrCA)
SysFreeString(bstrCA);
// Free other resources.
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | certadm.h (Certsrv.h を含む) |
Library | Certidl.lib |
[DLL] | Certadm.dll |