如何从代码访问Azure证书



我有一个证书上传到azure,它在配置中,比如。。。

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">
  <Role name="MyRole">
    <Instances count="1" />
    <ConfigurationSettings>
          ...
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MyCert" thumbprint="CB3611F7D2406AB12094AE9489C50FE1A8B6BFF6" thumbprintAlgorithm="sha1" />
    </Certificates>
  </Role>
</ServiceConfiguration>

有什么像。。。

X509Certificate2 myCert = Config.Certs["MyCert"];

或者甚至类似于让指纹直接从商店里拿出来?在运行时SDK中,我看不到任何地方可以获得证书甚至指纹。

没有办法枚举证书。实现这一点的标准方法是在csdef/cscfg中添加证书指纹作为配置设置,然后在运行时通过该配置设置查找指纹。

private static X509Certificate2 GetCertificate()
    {
        var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
        store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
        X509Certificate2Collection matchedCertificates =
                store.Certificates.Find(X509FindType.FindByThumbprint, "XXXXX", false);
        X509Certificate2 cert;
        if (matchedCertificates.Count > 0)
        {
           cert = matchedCertificates[0];
        }
        store.Close();            
        return cert;
    }

最新更新