【发布时间】:2014-11-22 10:30:58
【问题描述】:
在 Windows XP 和 Vista 下,我可以使用 CapiCOM dll 来处理 X509 证书。
但是,此路由已在 Window 7(及更高版本)下被弃用。
在 Delphi 帮助 (XE6) 中,我只能在 Data.DBXCommon.TX509Certificate 中找到 X509 代码,但这看起来与 Windows 证书存储无关。
MSDN 告诉我使用system.dll 和system.security.dll,但XE6 似乎没有为这些提供头文件:
(缺少system.dll头文件)
如何翻译以下代码以使其在 Windows 7 下工作?
uses
Capicom_TLB, CapicomConst, ActiveX;
{$R *.dfm}
procedure TForm11.Button1Click(Sender: TObject);
var
CertificateFilename: PWideChar;
Store: TStore;
Certificate: ICertificate2;
Password: WideString;
begin
if FileOpenDialog1.Execute then begin
CertificateFilename:= StringToOleStr(FileOpenDialog1.FileName);
Store:= TStore.Create(Self);
try
Password:= '';
Store.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_ROOT_STORE, CAPICOM_STORE_OPEN_READ_WRITE);
Certificate:= TCertificate.Create(Self) as ICertificate2;
Certificate.Load(CertificateFilename^, Password, CAPICOM_KEY_STORAGE_DEFAULT, CAPICOM_LOCAL_MACHINE_KEY);
Store.Add(Certificate as ICertificate2);
finally
Store.Close;
SysFreeString(CertificateFilename);
end;
end;
end;
如果我能获得适用于 Windows XP 到 Windows 8/9 的代码,那将是一个奖励。
【问题讨论】:
标签: delphi windows-7 certificate