从 Web 应用程序运行此代码时,我看不到任何 X509 证书:
var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
string thumbprint = WebConfigurationManager.AppSettings["CertificateThumbprint"];
if (string.IsNullOrWhiteSpace(thumbprint))
{
throw new ArgumentException("Please specify the X509 certificate thumbprint in the web configuration file.");
}
Certificate = store.Certificates
.Find(X509FindType.FindByThumbprint, thumbprint, true)
.OfType<X509Certificate2>()
.FirstOrDefault();
store.Close();
if (Certificate == null)
{
throw new ArgumentException("The specified X509 certificate has not been installed on this server.");
}
调试时,我可以看到它store.Certificates
是空的。但是,它在控制台应用程序中运行得非常好。这很奇怪,因为我在网上看到了在 Web 应用程序中使用上述代码的示例。
如果代码会从网络应用程序中抛出某种权限异常或某些东西来告诉我为什么我无法阅读它们,那将会很有帮助,但事实并非如此。那么,我需要在某处设置一些权限还是什么?