#c# #docusignapi
#c# #docusignapi
Вопрос:
Я пытаюсь использовать пример eg-01-csharp-jwt-framework-master и сталкиваюсь с проблемами. Я ввел всю информацию, которая требуется для файла конфигурации, и да, я разместил ее в правильных местах. К сожалению, я не смог заставить его работать.
Проблема, с которой я сталкиваюсь, заключается в самом коде. Просматривая код построчно, я обнаружил, что ошибка находится в строке 42 в ExampleBase.cs, и я получаю исключение, в котором говорится «{«——ЗАКРЫТЫЙ КЛЮЧ END RSA не найден»}». Закрытый ключ был скопирован непосредственно с веб-сайта DocuSign.
Вот что я ввел
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!--This is my API Account ID GUID-->
<add key="DS_CLIENT_ID" value="xxx" />
<!--This is my API User Name GUID-->
<add key="DS_IMPERSONATED_USER_GUID" value="xxx" />
<add key="DS_TARGET_ACCOUNT_ID" value="FALSE" />
<add key="DS_SIGNER_1_EMAIL" value="recipient email address here" />
<add key="DS_SIGNER_1_NAME" value="recipient name here" />
<add key="DS_CC_1_EMAIL" value="{USER_EMAIL}" />
<add key="DS_CC_1_NAME" value="Charlie Copy" />
<add key="DS_AUTH_SERVER" value="https://account-d.docusign.com"/>
<!--This is my newly created Private Key for this example-->
<add key="DS_PRIVATE_KEY" value="-----BEGIN RSA PRIVATE KEY-----
My Private key here
-----END RSA PRIVATE KEY-----" />
</appSettings>
</configuration>
Вот что было задано
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="DS_CLIENT_ID" value="12345" />
<add key="DS_IMPERSONATED_USER_GUID" value="12345" />
<add key="DS_TARGET_ACCOUNT_ID" value="FALSE" />
<add key="DS_SIGNER_1_EMAIL" value="sue@example.com" />
<add key="DS_SIGNER_1_NAME" value="Sue Cardella" />
<add key="DS_CC_1_EMAIL" value="larry@example.com" />
<add key="DS_CC_1_NAME" value="Charlie Copy" />
<add key="DS_AUTH_SERVER" value="https://account-d.docusign.com"/>
<add key="DS_PRIVATE_KEY" value="-----BEGIN RSA PRIVATE KEY-----amp;#xA;
MIIEowIBAAKCAQEAlrtiTEy3IzEI8jPuGXi/2C8KhNsJgyomP4XdXYwDjTyJm5u4amp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamp;#xA;
9J1RReNa5OIWUf6ErbhNdANqlBYTqMAdXAkTzSsOtbOo15lvHH7V==amp;#xA;
-----END RSA PRIVATE KEY-----amp;#xA;" />
</appSettings>
</configuration>
Любая помощь была бы отличной. Спасибо всем!
Обновленный конфигурационный файл
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!--This is my API Account ID GUID-->
<add key="DS_CLIENT_ID" value="xx-xx-xx-xx-xx" />
<!--This is my API User Name GUID-->
<add key="DS_IMPERSONATED_USER_GUID" value="xx-xx-xx-xx-xx" />
<add key="DS_TARGET_ACCOUNT_ID" value="FALSE" />
<add key="DS_SIGNER_1_EMAIL" value="test@test.com" />
<add key="DS_SIGNER_1_NAME" value="Test Name" />
<add key="DS_CC_1_EMAIL" value="Charlie@example.com" />
<add key="DS_CC_1_NAME" value="Charlie Copy" />
<add key="DS_AUTH_SERVER" value="https://account-d.docusign.com"/>
<!--This is my newly created Private Key for this example-->
<add key="DS_PRIVATE_KEY" value="-----BEGIN RSA PRIVATE KEY-----amp;#xA;
<!--Several Lines Omitted-->
-----END RSA PRIVATE KEY-----amp;#xA;
amp;#xA;" />
</appSettings>
</configuration>
Комментарии:
1. Добро пожаловать в StackOverflow и благодарим вас за использование DocuSign! Пожалуйста, поддержите все полезные ответы, включая ответы на вопросы других пользователей. И, ПОЖАЛУЙСТА, проверьте (примите) наилучший ответ на ваши собственные вопросы. Спасибо.
2. Смотрите мой обновленный ответ. Это
amp;#xA;
Ответ №1:
Да, вы ввели закрытый ключ RSA, как это было показано вам в инструменте администрирования изолированной среды разработчика.
Однако файл C # App.Config сталкивается с трудностями, когда значение атрибута должно включать Linefeed
управляющие символы.
Решение заключается в добавлении amp;#xA;
в конец каждой строки закрытого ключа RSA.
Вам необходимо добавить эти символы в файл App.config при вводе закрытого ключа.
App.config_example.txt
Файл, прилагаемый к решению, показывает результат, который вам нужно предоставить.
Обновлено
Вот файл App.config, который я использую:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="DS_CLIENT_ID" value="xxxxxxxx-65ca-4a6e-816d-ffxxxxxxxxxx" />
<add key="DS_IMPERSONATED_USER_GUID" value="xxxxxxxx-43f1-4184-944f-55xxxxxxxxxx" />
<add key="DS_TARGET_ACCOUNT_ID" value="FALSE" />
<add key="DS_SIGNER_1_EMAIL" value="larry@example.com" />
<add key="DS_SIGNER_1_NAME" value="Larry Kluger" />
<add key="DS_CC_1_EMAIL" value="Charlie@example.com" />
<add key="DS_CC_1_NAME" value="Charlie Copy" />
<add key="DS_AUTH_SERVER" value="https://account-d.docusign.com"/>
<add key="DS_PRIVATE_KEY" value="-----BEGIN RSA PRIVATE KEY-----amp;#xA;
MIIEowIBAAKCAQEApfgRksDxB rkNIsNA0ujDKT/9xZ7IFonKi9ejSCVqp6lCqZuamp;#xA;
B631QDSEzz3X1qfUsmBJfaydqU/YrV vhKdd6NlP21aD NuxHbB6i7ud9uRE1Sc9amp;#xA;
UGSkuXIcUYEISuR3WRnAFC64T34uEI8uIiXBJ7htbrHzU7qVHIvU0Jq6yv21wSWZamp;#xA;
(Many rows are elided)
ci8nnQKBgHYyVpuxl5mLxAanH/WIuoM1NxV8STdzrRTpssbBSw B/VPAfg3i88oLamp;#xA;
sJmumhoxvd6Z75BG9WS7ZYCVY y/OsTNLvWx36UK5JIIfm57YYyqLv5LF2VyIM6jamp;#xA;
Es5tOkQv/IMo6jrMo9zxbVroCo5h8OIS 2Kt2dHJkM4TT4Ug97qeamp;#xA;
-----END RSA PRIVATE KEY-----amp;#xA;
amp;#xA;" />
</appSettings>
</configuration>
Комментарии:
1. Ларри, к сожалению, это не сработало. Когда я использовал amp; # xAk, это выдавало ошибку внутри Visual Studio с «Недопустимым символом в шестнадцатеричном числе ‘k'». Затем я повторно попробовал пример, который был в файле конфигурации example, используя amp;# xA; и который выдал то же исключение, что и без него «System.IO.IOException: —— ЗАКРЫТЫЙ КЛЮЧ END RSA не найден»
2. упс. Опечатка с моей стороны. Это
amp;#xA;
(как показано в App.config_example.txt файл) cc @DWCoder3. Поскольку это не сработало, я полностью извлек закрытый ключ из файла конфигурации и просто сохранил его в примере для тестирования. Теперь он получает дальнейшее развитие, но все еще умирает тем же методом. Теперь я возвращаюсь к своей первоначальной проблеме, я получаю исключение DocuSign! Причина: ответ на ошибку 400: {«error»:»invalid_grant»}. Он умирает при вызове метода в строке 42 в ExampleBase.cs
4. Устанавливаете ли вы значения DS_CLIENT_ID и DS_IMPERSONATED_USER_GUID? Обратите внимание, что последним должен быть guid для пользователя, а не его адрес электронной почты.
5. Ларри, да, я устанавливаю значения. Если вы посмотрите на исходное сообщение, я показываю файл конфигурации из примера DocuSign и то, как я его заполняю.