【问题标题】:DocuSign C# WebApi Error: 'Unexpected PEM type'DocuSign C# WebApi 错误:“意外的 PEM 类型”
【发布时间】:2021-03-05 16:55:01
【问题描述】:

使用 VS2019 Docusign 扩展。我选择了 WebAPI 和 JWT 身份验证。生成了一个示例项目。

我在示例 WeatherForecastController 的 Get 方法中插入了一行代码调用:JWTAuth.AuthenticateWithJWT();

正在从 app.config 文件中获取所有预期的参数,但我收到错误:'Unexpected PEM type':

这是我的 app.config 文件由 Docusign 扩展生成的样子。

还有最后一条信息:

在 docusign 门户中,我尝试将身份验证类型设置为“代码授予”或“隐式”。我真正想要 JWT 身份验证但不是一个明确的选项,那么我应该使用哪一个来进行 JWT 身份验证?

任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net-core jwt docusignapi webapi


    【解决方案1】:

    你可以试试Encoding.ASCII.GetBytes()吗?

    【讨论】:

    • 试试 Encoding.ASCII.GetBytes(),在哪里?要获取 RSAKey?
    • 将 Encoding.UTF8.GetBytes() 替换为 Encoding.ASCII.GetBytes()
    • Encoding.ASCII.GetBytes() 似乎已经奏效,但现在。我得到了“consent_required”。我看到了 Larry 关于授予同意的帖子,但我看不到通过调用 Request a JWT Token 来实际传递重定向 URL。有没有人有一个工作示例,说明如何仅使用 WebAPI 控制器而不是 MVC 来做到这一点?文档太零散了。在我看来,生成的项目是不够的。
    【解决方案2】:

    不确定您是否在“应用程序和密钥”页面中为该 IK 生成了 RSA 密钥对。 您应该这样做,然后将密钥直接复制/粘贴到 private.key 文件(使用记事本,而不是 VS)。该文件必须与 DocuSign 门户中的一样完全,以避免此错误。 (-----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY----- 行是密钥的一部分,不能删除,一切都是必需的)

    你也可以尝试替换:

    Encoding.UTF8.GetBytes()
    

    System.IO.File.ReadAllBytes()
    

    将 C# 与 DocuSign 结合使用的相关视频:

    【讨论】:

    • 我使用了 DocuSign 开发者页面上的“快速启动”流程,它将生成所有安全凭证和 RSA,并将生成的项目保存到开发者可以下载和运行的 zip 文件中。生成的是一个 Asp.Net Core MVC 项目。在此项目中,RSA 密钥作为文件保存到项目中。这个项目有效。但我想要一个 WebAPI 版本,而不是使用 MVC 控制器。这与我已经描述的使用 Docusign 扩展生成的 WebAPI 项目不同。请自己试一试。使用 Docusign Extension 创建 WebAPI 项目。
    • 它对我来说很好用。问题是您没有完整的 RSA 密钥。您删除了 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY----- 这都是必需的。我会更新我的答案
    • 我也尝试了这些线条,但它没有用。但是,我使用了您使用 System.IO.File.ReadAllBytes() 加载外部文件的建议,这确实有效,但我遇到了其他错误。所以我已经退回到在 DocuSign 开发人员快速入门页面上生成的 MVC 项目。这样可行。 Inbar,如果您可以上传您正在使用的所有步骤的 youtube 视频,这将非常有帮助 a) 获取访问令牌,并且 b) 仅使用 web api 控制器执行嵌入式签名仪式。谢谢!
    • 我们有几个关于这个主题的 YouTube 视频,我会更新我的答案,请将其标记为已回答并在新线程上提出新问题。
    • 这里解决了这个问题的根源:stackoverflow.com/questions/66919340/…
    【解决方案3】:

    这是对这个问题的根源的修复,即 key-file-as-string-config-param 在 Esign 4.1.1 中有效,但在 5.2 版中无效:

    DocuSign .NET SDK - Esign DLL - Dealing with changes in Docusign Config Params regarding Error: 'Unexpected PEM type'

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2015-12-11
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 2021-05-19
      • 2015-02-15
      • 2017-05-15
      • 1970-01-01
      相关资源
      最近更新 更多