ASP.NET使用X509Certificate2出现的一些问题的解决方法分享(图)


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要为大家详细介绍了ASP.NET使用X509Certificate2出现一系列问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在做微信支付退款的时候,由于需要使用到p12证书,结果就遇到一系列的坑。这里做个记录方便以后查阅。

原先加载证书的代码:

复制代码 代码如下:

1

1 X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);2 Request.ClientCertificates.Add(cert);

在vs 上测试通过。但是部署到IIS上一直报这个问题:

复制代码 代码如下:

1

System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。

详细Stack Trace信息:

在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
在 System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
在 System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
在 TenpayCore.HttpService.Post(TenpayException& tpEx, Byte[] xml, String url, Boolean isUseCert, Int32 timeout)。

反复测试之后,确认不是代码跟文件路径的问题。在查询微软的文档后发现了相关说明,指明了问题所在,以下分享一下我的操作流程。

1.将证书安装上去

点击 [开始] -> [运行] -> 键入[mmc] 进入“控制台”界面 -> 选择[文件] -> [添加/删除管理单元](Ctrl+M)

选择 [证书] -> [计算机账户] -> [下一步] -> [完成]

阅读剩余部分

相关阅读 >>

什么是asp.net core?介绍asp.net core的优势

asp.net core mvc应用程度中如何读取当前url请求参数(querystring)的值?

在iis上部署asp.net core项目的步骤

asp.net如何利用ashx生成图形验证码的实例

分享asp.net学习笔记(13)razor 语法详解

如何使用会话状态(asp.net web 服务)

asp.net利用反射实现给model类赋值的示例代码分析

asp.net操作日期常用代码

高性能缓存系统(memcached)的实例介绍

asp.net关于cookie跨域的问题

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...