共用方式為


ICEnroll::get_PVKFileName 方法 (xenroll.h)

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

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

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

這是可讀寫的屬性。

語法

HRESULT get_PVKFileName(
  BSTR *pbstr
);

參數

pbstr

傳回值

備註

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. 呼叫 未設定為 CRYPT_EXPORTABLE 的put_GenKeyFlags,例如零。
  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