【转发】本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】的解决方案

本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】,这是由于服务器 IIS 和本地 IIS 默认配置不一致引起的,解决方案如下:

修改服务器 IIS 该网站的应用程序池配置项:【加载用户配置文件】 改为 True 即可~


 

在微信支付V3中有个签名方法用到了:

 protected static string Sign(string message, string privateKey)
        {
            try
            {
                byte[] keyData = Convert.FromBase64String(privateKey);
                using (CngKey cngKey = CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob))
                using (RSACng rsa = new RSACng(cngKey))
                {
                    byte[] data = Encoding.UTF8.GetBytes(message);
                    return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
                }
            }
            catch(Exception ex)
            {

                return "";
            }
           
        }

转自:https://blog.csdn.net/cnlol/article/details/109046413

 

posted @ 2021-12-29 15:15  James·wang  阅读(230)  评论(0编辑  收藏  举报