以编程方式访问 SAML2 证书
Accessing Certificate Programatically for SAML2
设置:
我有一个 .Net Framework WebForms 应用程序,只是使用 Sustainsys.Saml2 在 Azure 上设置 SAML2。我还使用 Git 进行版本控制 (VC) 并使用 Azure Key Vault 进行应用程序设置和连接字符串。
问题:
我可以通过哪些其他方式存储和访问 SAML2 证书,即使我可以以编程方式访问它(我目前 accessing/setting 以编程方式访问证书)?
我想防止将证书添加到我们的 VC 以及手动将其添加到 Azure 目录。
我尝试查看 Key Vault 证书,但不确定是否可以使用它。
您可以将您的证书上传到您的Azure App Service --> TSLSSL setting --> Private Key Certificates (.pfx)
。
上传到那里后,您可以通过 C#
以编程方式检索它,方法如下:
public static X509Certificate2 GetX509Certificate2(string certThumbprint, bool validOnly = true, StoreName storeName = StoreName.My, StoreLocation storeLocation = StoreLocation.CurrentUser) {
using (var certStore = new X509Store(storeName, storeLocation)) {
var certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, certThumbprint, validOnly);
// Get the first cert with the thumbprint
var cert = (X509Certificate2) certCollection.OfType<X509Certificate>().FirstOrDefault();
certStore.Close();
return cert;
}
}
通过以下方式调用:
var cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.LocalMachine);
就个人而言,为了它可以在本地、部署和我们任何开发人员的计算机上工作,我使用以下代码以便它可以搜索可能存储它的不同位置:
var cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.CurrentUser);
if (cert == null) {
cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.LocalMachine);
}
设置:
我有一个 .Net Framework WebForms 应用程序,只是使用 Sustainsys.Saml2 在 Azure 上设置 SAML2。我还使用 Git 进行版本控制 (VC) 并使用 Azure Key Vault 进行应用程序设置和连接字符串。
问题:
我可以通过哪些其他方式存储和访问 SAML2 证书,即使我可以以编程方式访问它(我目前 accessing/setting 以编程方式访问证书)?
我想防止将证书添加到我们的 VC 以及手动将其添加到 Azure 目录。
我尝试查看 Key Vault 证书,但不确定是否可以使用它。
您可以将您的证书上传到您的Azure App Service --> TSLSSL setting --> Private Key Certificates (.pfx)
。
上传到那里后,您可以通过 C#
以编程方式检索它,方法如下:
public static X509Certificate2 GetX509Certificate2(string certThumbprint, bool validOnly = true, StoreName storeName = StoreName.My, StoreLocation storeLocation = StoreLocation.CurrentUser) {
using (var certStore = new X509Store(storeName, storeLocation)) {
var certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, certThumbprint, validOnly);
// Get the first cert with the thumbprint
var cert = (X509Certificate2) certCollection.OfType<X509Certificate>().FirstOrDefault();
certStore.Close();
return cert;
}
}
通过以下方式调用:
var cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.LocalMachine);
就个人而言,为了它可以在本地、部署和我们任何开发人员的计算机上工作,我使用以下代码以便它可以搜索可能存储它的不同位置:
var cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.CurrentUser);
if (cert == null) {
cert = GetX509Certificate2(certificateThumbprint, false, storeLocation: StoreLocation.LocalMachine);
}