我被分配实现基于Windows的C#程序来拾取文件夹并使用signtool.exe扫描/签署所有文档。
我可以获取该文件夹中的文件列表。现在我如何使用signtool.exe对它们进行签名?客户端计算机没有在任何地方安装signtool.exe。
编辑:我可以使用x509Certificates直接检查,而不是使用外部工具进行签名检查。对于未来需要的人,我的解决方案如下。
答案 0 :(得分:1)
您将启动signtool.exe,其代码类似于:
var info = new ProcessStartInfo("<path.to>\signtool.exe", "<command line arguments>");
var p = Process.Start(info);
p.WaitForExit();
答案 1 :(得分:1)
抱歉,已经有一段时间了。我找到了一个简单的解决方案。只是希望将来,人们会寻找它:
public static string CheckSignature(string FileName)
{
//X509Certificate2 cert;
try
{
var signer = X509Certificate.CreateFromSignedFile(FileName);
var cert = new X509Certificate2(signer);
return "Digitally signed by: " + cert.SubjectName.Name;
}
catch (Exception)
{
return "NOT digitally signed.";
}
}
不要忘记包括:using System.Security.Cryptography.X509Certificates;
JPL