.net core DocuSign.NET SDK-Esign DLL-处理DocuSign配置参数中有关错误的更改:';意外的PEM类型';

.net core DocuSign.NET SDK-Esign DLL-处理DocuSign配置参数中有关错误的更改:';意外的PEM类型';,.net-core,docusignapi,.net-5,.net Core,Docusignapi,.net 5,在Esign版本4.1.1中,VS2019 Docusign项目代码生成器生成以下类型的配置文件: 请注意,开发人员必须将DocuSign“快速启动”页面上生成的私钥复制并粘贴到VS2019 DocuSign项目向导中。密钥转换为字符串,原始密钥文件中的每一行都用回车符表示 以这种方式将私钥值内联地与所有其他参数一起使用非常方便 此“RSAKey”参数值不适用于4.1.1版本。但不适用于5.2版本 在Esign 5.2版本中,我们现在使用Asp.Net Core 3.1/.Net 5样式的代码

在Esign版本4.1.1中,VS2019 Docusign项目代码生成器生成以下类型的配置文件:

请注意,开发人员必须将DocuSign“快速启动”页面上生成的私钥复制并粘贴到VS2019 DocuSign项目向导中。密钥转换为字符串,原始密钥文件中的每一行都用回车符表示

以这种方式将私钥值内联地与所有其他参数一起使用非常方便

此“RSAKey”参数值不适用于4.1.1版本。但不适用于5.2版本

在Esign 5.2版本中,我们现在使用Asp.Net Core 3.1/.Net 5样式的代码,因此我们现在有以下配置文件格式:

这不适用于Esign 5.2。我推测5.2中的更改是这样的-Docusign服务器生成密钥文件的哈希值,如果外部客户端提交的密钥文件的生成哈希不匹配,则会发回“未知PEM文件”错误。我试图强调DocuSign服务器上的第一个“门”检查文件本身,而不是文件中的RSA密钥的细微差别

如果这是真的,那么后果就是我们现在必须谨慎对待密钥文件。如果我想从远程源存储/检索这个文件,我需要非常小心,不要更改/添加/删除任何字节。这需要仔细测试。正如您在上面的示例appsettings.json中所看到的,为了获取物理文件,我不得不添加“KeyFilePath”参数,这意味着我必须始终将其保存在项目中,或者能够从远程源远程加载(完整的字节)。这大大增加了开发人员和维护人员的负担

理想情况下,我们需要一种方法来获得将key-file-as-a-string放回配置参数的功能


任何想法都值得赞赏。

解决这个问题的一种方法是使用

通过使用“File-to-Base64”选项,我可以在普通配置文件中将其作为字符串参数提供

然后使用它的C代码如下所示:

var cred = LoadDocusingConfigIntoObject();

byte[] buffer = Convert.FromBase64String(cred.PrivateKey);

                this.OAuthToken = docusignClient.RequestJWTUserToken(
                    cred.IntegrationKey,
                    cred.ImpersonatedUserId,
                    cred.AuthServer,
                    buffer,
                    1,
                    scopes
                );