我需要在我的构建中添加证书签名.下面是我编写的工作脚本示例,但它包含.pfx文件的密码.我无法在构建脚本中保留密码.在这种情况下你会使用什么"最佳实践"或黑客?
<ItemGroup Label="SignFiles">
<SignFilesInclude="$(FileLocation)\**\*.exe"/>
</ItemGroup>
<Exec Command="$(SignTool) sign /v /ac C:\MSCV-VSClass3.cer /f C:\Certificate.pfx /p Password /t http://timestamp.verisign.com/scripts/timestamp.dll %(SignFiles.Identity)"/>
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索之后,我在多个地方读到,一旦你第一次使用密码运行脚本,.pfx就存储在证书存储中,之后构建脚本中不需要密码.这是有效的,但我想确保这是最好的方法,或者更好,但有一种方法可以避免将密码放在脚本中.
我目前有一个用C#编写的应用程序,它在当前机器上的IIS7中添加了一个网站,并且运行良好,代码如下
var iisManager = new ServerManager();
var sites = iisManager.Sites;
var site = sites.Add("WebsiteName", "C:\Website", 80);
var application = site.Applications[0];
application.ApplicationPoolName = appPool;
iisManager.CommitChanges();
Run Code Online (Sandbox Code Playgroud)
我必须创建此代码的一个版本,以便将网站添加到位于同一网络上的远程计算机上的 IIS。该代码如下。
var iisManager= ServerManager.OpenRemote("machineName"); //I've also tried machines IP
var sites = iisManager.Sites["Default Web Site"];
var site = Sites.Applications.Add("WebsiteName", "C:\Website", 80);
site.ApplicationPoolName = appPool;
iisManager.CommitChanges();
Run Code Online (Sandbox Code Playgroud)
当 machineName 是执行代码的机器时,它会将网站添加到 IIS。但是,当 machineName 是远程机器时,我收到以下异常
由于以下错误,从“远程机器名称”检索具有 CLSID {2B72138B-3F5E-4502-8052-803546CE3364} 的远程组件的 COM 类工厂失败:80070005“远程机器”
执行时出现异常
var iisManager= ServerManager.OpenRemote("machineName");
Run Code Online (Sandbox Code Playgroud)
在执行上述代码之前,我使用模拟来模拟管理员。我可以远程访问机器,甚至可以使用 C# 代码在机器上创建文件。
我认为远程机器上的权限存在问题,或者可能是因为它是虚拟机,我真的不确定。
代码 80070005 相当通用,表示访问受限,但我不明白为什么要冒充管理员。
我在 Windows 7 sp1 x64 机器上执行代码,远程 VM …