2013-01-11 3 views
0

서클에서 실행 중입니다. HealthVault SDK (NuGet의 최신)를 ASP.NET MVC 응용 프로그램과 함께 사용하고 있습니다. 내 목표는 사용자가 HealthVault 응용 프로그램을 인증하고 PersonID 및 RecordID를 검색하여 데이터베이스에 저장하는 것입니다. PersonInfo을 얻을 수 없습니다.정확히 HealthVault의 WebApplicationUtilities.GetPersonInfo (authToken)가 작동해야합니까?

첫째, http://msdn.microsoft.com/en-us/library/ff803620.aspx#AUTH에 따라 내가 헬스 볼트에 사용자를 리디렉션하고 같은 것은 내가 내 기록 앱 권한을 부여,

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 : 액세스가 거부되었습니다.

토큰이 null이 아니며 응용 프로그램이 모든 권한을 갖고 성공을 반환하지만 액세스가 거부됩니다. 무엇이 잘못되었을 수 있습니까?

답변

1

필자의 경우 PFX 파일 (web.config에서 구성)의 개인 키가 응용 프로그램의 공개 키와 일치하지 않는 경우가 발생했습니다.
아직 테스트 환경을 사용하고 있으며 https://config.healthvault-ppe.com을 사용하여 응용 프로그램을 구성하고 있습니다.
PFX 파일에서 공개 키 (.cer 파일 만들기)를 추출하여 응용 프로그램의 공개 키로 업로드하십시오.