c# - Azure:无需定义附加配置即可获取服务证书

标签 c# .net azure x509certificate azure-cloud-services

我的云服务具有以下配置:

<?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 搜索它)?

最佳答案

当然 - 如果您知道有关证书的其他信息,您可以使用 X509FindType Enumerations 中的任何一个与 X509Certificate2Collection.Find Method 。不幸的是,ServiceConfiguration 的证书部分用于在云服务证书存储中查找证书并将该证书安装在与您正在部署的角色关联的虚拟机上。没有 API 可以直接访问该部分。因此,您的选择是对证书使用者名称或指纹之类的内容进行硬编码,并希望它不会更改,或者添加一个像您在代码示例中演示的那样的设置,该设置可在每次部署时进行配置。

ConfigurationSettings 部分镜像 web.config 文件中的 appSettings 部分,当与 CloudConfigurationManager.GetSetting("settingsKey") 结合使用时,首先在 ServiceConfiguration 中查找,然后在 web.config 中查找应用程序设置,允许您取消在模拟器中本地或只是 IIS Express 并实现相同的功能。因此,我们复制 ServiceConfiguration 和 web.config 中的设置。

关于c# - Azure:无需定义附加配置即可获取服务证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880650/

相关文章:

c# - 我可以使用事件在应用程序之间发送信号吗?

c# - 如何将 ListView 绑定(bind)到存储在 WPF 中单个 ViewModel 中的多个集合?

azure - 在 Azure 的云合作伙伴门户中禁用产品/服务的预览阶段

excel - 如何将 Azure 机器学习输出导出到 CSV

c# - 如何获取目录上次修改日期=文本框日期并获取此目录中的文件c#

c# - 如何将图像裁剪成正方形

c# - 将整数转换为单词字符串

multithreading - 具有分布式后台工作的 Azure Web 角色

c# - 将 pair<int,float> 的二维数组从 c# 传递到 c dll

c# - 更改系统托盘图标图像