Что именно нужно HealthVault для WebApplicationUtilities.GetPersonInfo( authToken)?

Я бегаю кругами. Я использую HealthVault SDK (последний из NuGet) с нашим приложением ASP.NET MVC. Моя цель - авторизовать наше приложение HealthVault с пользователем, получить его PersonID и RecordID и сохранить их в нашей базе данных. Я не могу получить PersonInfo,

Во-первых, как сообщает http://msdn.microsoft.com/en-us/library/ff803620.aspx я перенаправляю пользователя в HealthVault для входа.

https://account.healthvault-ppe.com/redirect.aspx?target=AUTH&targetqs=?appid={AppId}%26redirect%3d{ReturnUrl}

Я успешно перенаправлен, я авторизую свою запись и приложение, и я перенаправлен обратно.

var target = Request.QueryString[ "target" ];
if (target == "APPAUTHSUCCESS") {
    var token = Request.QueryString[ "wctoken" ];
    var p = WebApplicationUtilities.GetPersonInfo( token );
}

Приведенный выше код не работает. Бросили на линии var p = WebApplicationUtilities.GetPersonInfo( token ),

Microsoft.Health.HealthServiceAccessDeniedException: доступ запрещен.

Токен не является нулевым, приложение имеет все разрешения и возвращает успех, а доступ запрещен всегда. Что может быть не так?

1 ответ

В моем случае это произошло, когда мой закрытый ключ из файла PFX (настроенный в web.config) не совпадал с открытым ключом для приложения.
Я все еще использую тестовую среду и использую https://config.healthvault-ppe.com/ для настройки своих приложений.
Попробуйте извлечь открытый ключ (файл.cer) из вашего файла PFX и загрузить его как открытый ключ для приложения.

Другие вопросы по тегам