我的云服务具有以下配置:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration ...>
<Role name="...">
<ConfigurationSettings>
<Setting name="MyCertThumbprint" value="AB687DC9F63D51AE6E9522B86B97EFD15F55EA42" />
</ConfigurationSettings>
<Certificates>
<Certificate name="MyCert" thumbprint="AB687DC9F63D51AE6E9522B86B97EFD15F55EA42" thumbprintAlgorithm="sha1" />
</Certificates>
</Role>
</ServiceConfiguration>
看到冗余?
我想摆脱MyCertThumbprint配置。是否有Azure API可以访问MyCert的指纹?或者也许是X509Certificate2实例本身(即无需使用X509Store搜索它)?
答案 0 :(得分:2)
当然 - 如果您了解有关证书的其他信息,则可以使用X509FindType Enumerations和X509Certificate2Collection.Find Method中的任何一个。遗憾的是,ServiceConfiguration的“证书”部分用于在Cloud Service证书存储中查找证书,并在与要部署的角色关联的VM上安装该证书。没有API可以直接访问该部分。因此,您的选择是对证书主题名称或指纹进行硬编码,并希望它不会发生变化,或者添加您在代码示例中演示的设置,该设置可以在每个部署中进行配置。
ConfigurationSettings部分镜像web.config文件中的appSettings部分,当与CloudConfigurationManager.GetSetting(&#34; settingsKey&#34;)一起使用时,先查看ServiceConnfiguration,然后在web.config中查看应用程序设置,允许您在模拟器中取消本地或只是IIS表达并实现相同的功能。因此,我们在ServiceConfiguration和web.config中复制设置。