Что именно нужно 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 и загрузить его как открытый ключ для приложения.