Share via


ICEnroll::p ut_PVKFileName 方法 (xenroll.h)

[自 Windows Server 2008 和 Windows Vista 起,這個屬性已不再可供使用。]

PVKFileName屬性會設定或擷取將包含匯出金鑰的檔案名。

此屬性最初是在 ICEnroll 介面中定義。

這是可讀寫的屬性。

語法

HRESULT put_PVKFileName(
  BSTR bstr
);

參數

bstr

傳回值

備註

PVKFileName屬性會影響下列方法的行為:

密碼 編譯服務提供者 (CSP) 不支援匯出功能。 在過去, Authenticode 已將 私密金鑰 匯出至磁片上的 .pvk 檔案,並從登錄中移除金鑰。 根據預設,不會針對匯出產生私密金鑰,而且許多密碼編譯服務提供者不支援匯出金鑰。 不過,如果 CSP 支援匯出私密金鑰,請為 PVKFileName 屬性指定非 Null 值,會使私密金鑰產生為可匯出,並將私密金鑰和公開金鑰寫入 PVKFileName 屬性所指定的檔案。 私密金鑰會從 CSP 中移除。 屬性指定的檔案名可以是任何可存取的檔案。 根據預設,不會產生 .pvk 檔案,而且不會將金鑰產生為可匯出。

如果 .pvk 檔案已經存在,系統會通知使用者,並提示使用者取得覆寫許可權。

GenKeyFlags屬性也有旗標,可控制是否可以匯出私密金鑰。 同時使用 GenKeyFlags 屬性和 PVKFileName 屬性時,請小心。 如果第一次設定 PVKFileName 屬性, GenKeyFlags 屬性會自動設定為 CRYPT_EXPORTABLE。 如果使用 put_GenKeyFlags 函式) 設定 GenKeyFlags 屬性 ( ,但不包含 CRYPT_EXPORTABLE 旗標, 則 GenKeyFlags 將不會設定為 CRYPT_EXPORTABLE,而且產生的金鑰將無法匯出。 下列程式示範這一點:

  1. 呼叫 put_PVKFileName ,以設定將接收匯出金鑰之檔案的檔案名。 GenKeyFlags屬性會自動設定為 CRYPT_EXPORTABLE。
  2. 呼叫put_GenKeyFlags的值未設定為 CRYPT_EXPORTABLE,例如零。
  3. GenKeyFlags 不再設定為 CRYPT_EXPORTABLE (在步驟一) 中自動設定的值。

遵循先前步驟所產生的任何金鑰將無法匯出。 因此,建議使用者在PVKFileName屬性一起使用時,先設定GenKeyFlags屬性。

或者,使用者可以判斷GenKeyFlags屬性中CRYPT_EXPORTABLE位的目前值,然後在此值與GenKeyFlags屬性所做的任何變更之間執行位OR運算,以確保不會抹除該位。更新GenKeyFlags屬性時,使用者也可以特別設定CRYPT_EXPORTABLE位。

範例

BSTR     bstrPVKFile = NULL;
BSTR     bstrNewPVKFile = NULL;
HRESULT  hr;

// pEnroll is previously instantiated ICEnroll interface pointer

// get the PVKFileName
hr = pEnroll->get_PVKFileName( &bstrPVKFile );
if (FAILED( hr ))
    printf("Failed get_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName: %ws\n", bstrPVKFile );
// free BSTR when done
if ( NULL != bstrPVKFile )
    SysFreeString( bstrPVKFile );

// set the PVKFileName, for example, "MyKeys.pvk"
bstrNewPVKFile = SysAllocString(TEXT("FILENAMEHERE"));

hr = pEnroll->put_PVKFileName( bstrNewPVKFile );
if (FAILED( hr ))
    printf("Failed put_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName set to %ws\n", bstrNewPVKFile );
// free BSTR when done
if ( NULL != bstrNewPVKFile )
    SysFreeString( bstrNewPVKFile );

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 xenroll.h
程式庫 Uuid.lib
Dll Xenroll.dll