使用 Sustainsys 将带有 public 键的 .cer 文件添加到 .NET Core 2
Adding .cer file with public key to .NET Core 2 with Sustainsys
我有一个 .cer 文件,其中包含我需要的 public 密钥,以便测试针对 AD FS 的身份验证。
我可以轻松地将它添加到解决方案中存在的 Web.config(设置 signingCertificate 文件名)中的 MVC 示例中,它似乎可以工作,但我找不到任何方法来添加到 AspNetCore2 项目中。
我找到的最接近的是 SigningServiceCertificate,但它只有一个 getter,我在另一个线程中读到它应该以某种方式将 public 密钥添加到 SigningKeys 集合,我就是想不通。
谢谢!
我不确定您到底在问什么,但是我将 Sustainsys 与证书一起使用,并且我使用了以下行:
var idp = new Sustainsys.Saml2.IdentityProvider(new entityId("https://sso.acme.com"), opt.SPOptions) { ... insert properties ... }
idp.SigningKeys.AddConfiguredKey(new X509Certificate2("customer-certificate.cer"));
opt.SPOptions.ServiceCertificates.Add(EncryptionHelper.GetX509Certificate2("INSERT-THUMBPRINT-OF-YOUR-CERTIFICATE"));
其中 EncryptionHelper.GetX509Certificate2
是我编写的用于读取我的证书的自定义助手。
这里是 EncryptionHelper
的代码 - 我在众多在线示例之一的基础上制作了它。
public static X509Certificate2 GetX509Certificate2(string thumbprint)
{
X509Certificate2 retVal = null;
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count > 0)
{
retVal = signingCert[0];
}
return retVal;
}
请注意,如果您 运行 在 Azure 中使用此功能,那么您还需要使用这些说明将指纹添加到应用程序设置 - https://docs.microsoft.com/en-us/azure/app-service/app-service-web-ssl-cert-load
您可以按照这些说明找到指纹 - https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-retrieve-the-thumbprint-of-a-certificate
我有一个 .cer 文件,其中包含我需要的 public 密钥,以便测试针对 AD FS 的身份验证。 我可以轻松地将它添加到解决方案中存在的 Web.config(设置 signingCertificate 文件名)中的 MVC 示例中,它似乎可以工作,但我找不到任何方法来添加到 AspNetCore2 项目中。
我找到的最接近的是 SigningServiceCertificate,但它只有一个 getter,我在另一个线程中读到它应该以某种方式将 public 密钥添加到 SigningKeys 集合,我就是想不通。
谢谢!
我不确定您到底在问什么,但是我将 Sustainsys 与证书一起使用,并且我使用了以下行:
var idp = new Sustainsys.Saml2.IdentityProvider(new entityId("https://sso.acme.com"), opt.SPOptions) { ... insert properties ... }
idp.SigningKeys.AddConfiguredKey(new X509Certificate2("customer-certificate.cer"));
opt.SPOptions.ServiceCertificates.Add(EncryptionHelper.GetX509Certificate2("INSERT-THUMBPRINT-OF-YOUR-CERTIFICATE"));
其中 EncryptionHelper.GetX509Certificate2
是我编写的用于读取我的证书的自定义助手。
这里是 EncryptionHelper
的代码 - 我在众多在线示例之一的基础上制作了它。
public static X509Certificate2 GetX509Certificate2(string thumbprint)
{
X509Certificate2 retVal = null;
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count > 0)
{
retVal = signingCert[0];
}
return retVal;
}
请注意,如果您 运行 在 Azure 中使用此功能,那么您还需要使用这些说明将指纹添加到应用程序设置 - https://docs.microsoft.com/en-us/azure/app-service/app-service-web-ssl-cert-load
您可以按照这些说明找到指纹 - https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-retrieve-the-thumbprint-of-a-certificate