3

我需要以编程方式将证书导入 Windows 商店。CryptUIWizImport 功能运行良好,但 Windows 要求用户创建额外的密码来保护证书。但用户可以选择不设置此密码。

是否可以避免 Windows UI 并以编程方式设置此附加密码?

4

1 回答 1

0

作为以下代码,您应该清空密码字段:

#include "stdafx.h"
#include "windows.h"
#include "Cryptuiapi.h"

#pragma comment(lib, "Cryptui.lib")

int _tmain(int argc, _TCHAR* argv[]){
    CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc;    
    memset(&importSrc, 0, sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO));    
    importSrc.dwSize = sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO);    
    importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;    
    importSrc.pwszFileName = L"C:\\PathToPFX\\cert.pfx";    
    importSrc.pwszPassword = L"";    
    importSrc.dwFlags = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;             
    if (CryptUIWizImport(    
      CRYPTUI_WIZ_NO_UI,    
      NULL,    
      NULL,    
      &importSrc,    
      NULL    
    ) == 0)    
    {    
      printf(“CryptUIWizImport error 0x%x\n”, GetLastError());    
    }
    return 0;
}
于 2016-04-17T04:59:38.793 回答