<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>HealthVault FAQ</title><link>http://blogs.msdn.com/b/healthvaultfaq/</link><description>This blog hosts FAQ questions (and answers) for developers using the HealthVault SDK</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.20496 (Build: 5.6.583.20496)</generator><item><title>Certificate loading problem or Error loading certificate in IIS 7 and later versions</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/02/21/certificate-loading-problem-or-error-loading-certificate-in-iis-7-and-later-versions.aspx</link><pubDate>Mon, 21 Feb 2011 12:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132148</guid><dc:creator>Madan kamuju</dc:creator><slash:comments>0</slash:comments><description>This document describes how to install a HealthVault certificate in the Windows certificate store and running the corresponding HealthVault application in Windows 7 and Windows Server 2008. If the certificate is not installed correctly in the local computer...(&lt;a href="http://blogs.msdn.com/b/healthvaultfaq/archive/2011/02/21/certificate-loading-problem-or-error-loading-certificate-in-iis-7-and-later-versions.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132148" width="1" height="1"&gt;</description></item><item><title>How to share data with a physician</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/02/14/how-to-share-data-with-a-physician.aspx</link><pubDate>Mon, 14 Feb 2011 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10129250</guid><dc:creator>Aneesh D1</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10129250</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/02/14/how-to-share-data-with-a-physician.aspx#comments</comments><description>&lt;p&gt;A common scenario we&amp;lsquo;ve seen in hospital-based applications is the persistent need for a patient to share medical information with a doctor or group of doctors. In cases like this, both privacy concerns around medical information and requirements for ease of data use will influence the solution used.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Scenario&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Consider a situation where a user has uploaded all their data, either through a device or through another application (including the &lt;a href="https://account.healthvault.com/default.aspx"&gt;HealthVault Shell&lt;/a&gt;), into his or her HealthVault record. The user now wants to consult a physician based on information that they&amp;rsquo;ve uploaded, and wants to provide all the necessary and relevant data at their consultation.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;How can we achieve this using HealthVault?&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;1. Accessing data by building a HealthVault application&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;The last section will show you clearly that the Shell was not designed for sharing a patient&amp;rsquo;s HealthVault record with doctors. How is an application a better method to exchange information? Let&amp;rsquo;s consider both the online and offline application architectures. The online applications require the user to be present when the physician&amp;rsquo;s system accesses their HealthVault record. An online application also requires the user to sign in to HealthVault each time the physician system needs fresh access to the data. These two reasons make the online scenario unacceptable for a patient who wants to give their doctor ongoing access. If we consider the offline architecture, both of these requirements are removed. The user can grant the data permissions to the application just once, and then the application can directly handle the data without any user interaction. This makes it easy for the physician to retrieve the data whenever they want once the access is authorized with the application. &amp;nbsp;Thus, the offline architecture is the best option for an application to allow the patient to provide their data in this scenario.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;A sample workflow for this scenario looks like this: The hospital has a HealthVault-integrated offline application in which registered patients can log in and allow exchange of health information with HealthVault. The application will also have a login window where physicians can log in to access patient data. After registering at the hospital, the patient will go to the application and log in using the credentials they acquired during registration. The patient then links their HealthVault record to the hospital application through an authorization process. When a physician wants to see data for a particular patient, they log into the application and then choose the particular patient using a unique patient ID. The application will pull the data from the corresponding HealthVault record and render it to the physician. The application can manage which data types are shown to the logged-in physician, the level of access, and how to show the data; for example by plotting it as a graph or just showing the raw data.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;Advantages and Disadvantages &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;The physician&amp;rsquo;s login and access rights can be created when they join the hospital. The application can be designed to present any forms desired for patient notice or consent. And the physician can easily choose whose data to view in the application. As the application renders the data in the expected way, the physician can better focus on data analysis rather than data formatting.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Now, let&amp;rsquo;s look at this scenario from the patient&amp;rsquo;s perspective. A user authorizes access by the application broadly. This is acceptable for most scenarios, but what if the user wants more control over their data? What if they want to share this information with only a specific physician, or they want to share only a specific set of relevant data? These scenarios cannot be addressed in this solution.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;As the application is using the offline architecture, both the Person ID and Record ID of the user need to be stored in a secured local database. This adds an additional overhead. In addition, the application must implement a method to let the physician log in to the system and link their own login information to the patient&amp;rsquo;s information. &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;2. Accessing filtered data through a HealthVault application &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;This application flow mimics the one above for most of this scenario. The difference arises when the user logs in to the application. The user will be shown a list of physicians from which they can select the names of those they&amp;rsquo;d like to share their data with. Users will have been given the physician&amp;rsquo;s name during the registration process itself, or by contacting the hospital prior to their appointment. Similar scenarios occur for the physician login. Instead of being shown all available patients, the physician&amp;rsquo;s access can be limited to only those patients who have given them permission to see their data. A sophisticated system can let the user choose a date range and a set of data types to be accessed. Please note that this flow is different only in the way an application uses the data and it is not related to the HealthVault platform in any way. The Privacy and Term of Use statements of the application should specify these conditions appropriately.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;Advantages and Disadvantages&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Allowing users to choose how their data will be exposed by the application may be the best option in many cases. This puts users at ease when working with the application, as they know that the application only provides access to those they have selected.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Like the second scenario, this method requires the storage of the user&amp;rsquo;s login information in a database and the implementation of a login mechanism for physicians. Additionally, this method adds extra complexity to the application logic by which the physician&amp;rsquo;s information is linked to the patient&amp;rsquo;s information. When the user logs in and chooses doctors they want to access their data, a mapping of the user&amp;rsquo;s data with the physician&amp;rsquo;s information should be created by the application. One way to do this is to use another column to store the mapping information in the DB table in which the user&amp;rsquo;s information is stored. When a doctor chooses a user, the application should first validate this request with the already-created user mapping information. If the request is valid, i.e., the user has given the physician permission to view the patient data, then a dynamic linking of the physician&amp;rsquo;s information with the user&amp;rsquo;s data will occur. This adds an additional complexity to the application design.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Now let us compare the above two approaches.&lt;/p&gt;
&lt;table align="left" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature \ Method&lt;/td&gt;
&lt;td&gt;Through HealthVault App&lt;/td&gt;
&lt;td&gt;HealthVault App with filtering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security and Privacy Concerns&lt;/td&gt;
&lt;td&gt;Addressed by the App&lt;/td&gt;
&lt;td&gt;Addressed by the App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physician need a HealthVault account&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional record sharing step is needed&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data sharing level&lt;/td&gt;
&lt;td&gt;Decided by the App&lt;/td&gt;
&lt;td&gt;Decided by the App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy for Physician to choose the patient&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Patients can choose Physicians&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need for local database&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Can we use the Shell Sharing feature?&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;&lt;img height="262" width="416" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48/5543.ShellImage.png" border="0" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;As shown above, the Shell provides a method for a user to share their record with another person. However, HealthVault accounts are not offered for professional or non-personal use. This is a very good way to let relatives or friends help manage health information, for example a family member who needs to control the health information of a child or aging parent. When sharing the data, the user can specify the access level, which includes read access, the ability to view and modify, and full access as a custodian.&amp;nbsp; Additionally, a user can control which data types will be shared, and whether there is an expiration date on the shared access. The sharing feature does not prevent the user from sending a sharing invitation to anyone they choose, including their doctor. Once the doctor receives the sharing invitation, they would have the ability to accept it, open a personal account, and see the user&amp;rsquo;s shared data in their own HealthVault account. Though this satisfies the basic data sharing function, it violates HealthVault&amp;rsquo;s service terms, and this shouldn&amp;rsquo;t be used as a solution for this scenario. Let us discuss the reasons in the next section.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;Problems&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Sharing data directly through the HealthVault Shell addresses certain security and privacy concerns for account-holders, as the Shell includes access control features described above. &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;A deeper look, however, reveals a number of concerns with this method. First, this scenario requires the physician to have a HealthVault account and Live ID of their own and use this account as part of healthcare service. This use case does not fall within HealthVault&amp;rsquo;s &lt;a href="http://www.healthvault.com/terms-of-use.aspx"&gt;terms of service&lt;/a&gt; and is not acceptable for any HealthVault integration. In addition, most healthcare organizations would have other requirements for their information management systems. For example, as a personal service for consumers, Microsoft doesn&amp;rsquo;t act as a business associate under HIPAA in connection with HealthVault records, and doesn&amp;rsquo;t include the kind of data management features that a healthcare practice would want to help control its operation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10129250" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/HealthVault/">HealthVault</category><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/Physician/">Physician</category></item><item><title>HealthVault policy regarding HealthVault server IP addresses and partners with IP-based firewalls</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/01/21/healthvault-policy-regarding-healthvault-server-ip-addresses-and-partners-with-ip-based-firewalls.aspx</link><pubDate>Fri, 21 Jan 2011 20:42:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10118828</guid><dc:creator>Anish Ravindran</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10118828</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/01/21/healthvault-policy-regarding-healthvault-server-ip-addresses-and-partners-with-ip-based-firewalls.aspx#comments</comments><description>&lt;p&gt;There are situations where partners need to know whether they can run their application behind a firewall, which require communicating with HealthVault through their IP based firewalls. We don&amp;rsquo;t recommend partners to depend on our HealthVault IPs but they don&amp;rsquo;t have any other way then we can talk that during the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/healthvault/bb962148.aspx" title="HealthVault Go-Live"&gt;HealthVault Go-Live&lt;/a&gt; of the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10118828" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/environment/">environment</category></item><item><title>ActionURL targets override for Privacy and Terms of Use from HealthVault Application Configuration Center</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/01/07/actionurl-targets-override-for-privacy-and-terms-of-use-from-healthvault-application-configuration-center.aspx</link><pubDate>Fri, 07 Jan 2011 21:58:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10113158</guid><dc:creator>Anish Ravindran</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10113158</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2011/01/07/actionurl-targets-override-for-privacy-and-terms-of-use-from-healthvault-application-configuration-center.aspx#comments</comments><description>&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;As mentioned in &lt;st1:imcontact dnid="Chris Tremonte" sipid="ctremont@microsoft.com" w:st="on"&gt;Chris Tremonte&lt;/st1:imcontact&gt;&amp;rsquo;s blog on &lt;a href="http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/19/actionurl-privacy-and-terms-of-use.aspx"&gt;&lt;span style="color: #0000ff;"&gt;ActionUrl, Privacy and Terms of Use&lt;/span&gt;&lt;/a&gt;, &lt;a href="https://config.healthvault-ppe.com/"&gt;&lt;span style="color: #0000ff;"&gt;HealthVault Application Configuration Center&lt;/span&gt;&lt;/a&gt; now supports hardcoded statements for both Privacy and Terms of Use irrespective of the ActionURL specified for the application. The only way previously supported was to show relevant Privacy and Terms of Use to the user is by deriving it from the ActionURL. You can find the appropriate Application Targets in the &lt;a href="http://msdn.microsoft.com/en-us/library/ff803620.aspx"&gt;&lt;span style="color: #0000ff;"&gt;HealthVault Shell Redirect Interfaces&lt;/span&gt;&lt;/a&gt;. With the released feature, you can now use &lt;a href="https://config.healthvault-ppe.com/"&gt;&lt;span style="color: #0000ff;"&gt;HealthVault Application Configuration Center&lt;/span&gt;&lt;/a&gt; to achieve the same results by specifying the contents for the Privacy Statement and the Terms of Use in the Information Tab.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48/8055.Information-Tab-in-HealthVault-Application-Configuration-Center.jpg" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Figure 1: Information Tab in &lt;a href="https://config.healthvault-ppe.com/"&gt;&lt;span style="color: #0000ff;"&gt;HealthVault Application Configuration Center&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;If an ActionURL is not specified for SODA and PatientConnect applications, then both Privacy and Terms of Use statements in the &lt;a href="https://config.healthvault-ppe.com/"&gt;&lt;span style="color: #0000ff;"&gt;Application Configuration Center&lt;/span&gt;&lt;/a&gt; must be specified. &lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Suppose you have implemented both ActionURL targets for Privacy/Terms of Use and statements in the Application Configuration Center than the hardcoded statements from the &lt;a href="https://config.healthvault-ppe.com/"&gt;&lt;span style="color: #0000ff;"&gt;Application Configuration Center&lt;/span&gt;&lt;/a&gt; will override the derived ActionURL targets.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48/2158.Table.JPG" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Table 1: Summary of TOU and Privacy statements use for different types of applications&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Note: If the organization is covered under the HIPAA or Clinical Trial, then it is not required for the application to derive the privacy page.&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;Privacy and Terms of Use statements in the Application Configuration Center are useful for web applications when the ActionURL is behind a firewall. This allows for HealthVault to serve up the Privacy and Terms of Use statements to users directly without requiring an ActionURL to redirect the user to the Privacy or Terms of Use statements. Also note that the Application Configuration Center now accepts only plain text for the Privacy or the Terms of Use statements, which still allows you to use the ActionURL if you are using HTML in either of your statements.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10113158" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Creating application ID from HeathVault Application Manager in UK environment </title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/12/20/creating-application-id-from-heathvault-application-manager-in-uk-environment.aspx</link><pubDate>Mon, 20 Dec 2010 10:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10107123</guid><dc:creator>Madan kamuju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10107123</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/12/20/creating-application-id-from-heathvault-application-manager-in-uk-environment.aspx#comments</comments><description>This Blog Post will help you in creating Application ID from HeathVault Application Manager in UK environment, as partners from UK cannot create Application ID using HeathVault Application Manager unless they modify ApplicationManager.exe.config file...(&lt;a href="http://blogs.msdn.com/b/healthvaultfaq/archive/2010/12/20/creating-application-id-from-heathvault-application-manager-in-uk-environment.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10107123" width="1" height="1"&gt;</description></item><item><title>Users are unable to create support cases - Fixed</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/12/14/user-are-unable-to-create-support-cases.aspx</link><pubDate>Wed, 15 Dec 2010 01:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10105051</guid><dc:creator>Anish Ravindran</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10105051</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/12/14/user-are-unable-to-create-support-cases.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;We are currently experiencing a technical issue that is blocking people from submitting a new support requesting using the &lt;a href="https://support.microsoft.com/oas/default.aspx?prid=13388&amp;amp;ln=en-us&amp;amp;st=1"&gt;HealthVault Developer Support offering&lt;/a&gt;.&amp;nbsp; Until further notice please utilize the &lt;a href="http://social.msdn.microsoft.com/forums/en-US/healthvault/threads/"&gt;MSDN Forums&lt;/a&gt;.&amp;nbsp; We will let everyone know when this issue is resolved.&amp;nbsp; Thank you. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;b&gt;All systems are back up and running.&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10105051" width="1" height="1"&gt;</description></item><item><title>Mobile phone application development in HealthVault</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/11/23/mobile-phone-application-development-in-healthvault.aspx</link><pubDate>Tue, 23 Nov 2010 19:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10095584</guid><dc:creator>Aneesh D1</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10095584</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/11/23/mobile-phone-application-development-in-healthvault.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Considering the wide acceptance, ease of use and large user base, mobile application development is getting more and more popular. As the device always stays close to the user, HealthVault integrated applications on mobile platforms make sense in a variety of scenarios. In this discussion we will consider the different possible architectures that a mobile application can utilize for HealthVault integration.&lt;/p&gt;
&lt;p&gt;Below are the main areas that we will have to focus when dealing with a mobile phone application in HealthVault space.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Authentication&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;2. HealthVault API interaction&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;3. Discovering the application&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;Let the Mobile App talk to Web Service&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Architecture&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We have some of our partners like &lt;a href="https://www.sharedcareplan.org/HomePage.aspx"&gt;SCP&lt;/a&gt;, &lt;a href="http://www.withings.com"&gt;Withings&lt;/a&gt; etc. following this architecture.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/0028.image_5F00_51D83BA1.png"&gt;&lt;img height="96" width="447" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/2273.image_5F00_thumb_5F00_5C9592F6.png" alt="image" border="0" title="image" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The application will have its own server which exposes a set of web service APIs to let the mobile application communicate with HealthVault. Thus the mobile application will not have any direct communication with the HealthVault platform, since the server does that on behalf of the application. The server communicates with HealthVault by creating an application connection object. For this architecture you will have to use the Offline connection for all HealthVault interactions.&lt;/p&gt;
&lt;p&gt;This is the recommended architecture for mobile phone applications in HealthVault. We are consistently exploring ways to improve the mobile phone application development easier, so please feel free to give us your feedback. Let us look into a typical scenario which implements this architecture.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. &lt;b&gt;Authentication&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In this scenario the application certificate will be installed in the server which is hosting the Web Service. So no distribution of certificate is needed. But how will the user authorization and authentication happens here? Yes this is one big concern. There are many ways the user authentication can happen. Among them the easiest way is to have a web page hosted for the application through which users can do the authorization. Let us call it registration process.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The user goes to the above page and login (with his HealthVault account for Online + Offline applications or through the PatientConnect way). Here the application should have enough Offline permissions set because after the registration all the HealthVault data upload and retrieval will happen through Offline Connection. Once the authorization is done the site will store the Person ID and the Record ID in a data store accessible to the Web Service. Then the site will give the user a confirmation ID which will be used to find out the corresponding Person ID and Record ID from the data store in future.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;While the user is using the application for the first time user will be prompted to enter the confirmation ID, along with the right help if the user doesn&amp;rsquo;t have a confirmation ID yet. This confirmation ID will be stored in the mobile device&amp;rsquo;s persistent storage to avoid the user entering it again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;HealthVault API interaction&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;All the HealthVault API interactions happen here from the Web Service and none from the mobile application. For any data that the mobile application needs to deal with will be passed to or read from the Web Service using the APIs exposed by the Web Service. Here the Web Service will have to expose some wrapper classes for the HealthVault data types and some interfaces for the mobile application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;With each request send from the mobile application the encrypted confirmation ID will have to be passed to the Web Service. Web Service will use this confirmation ID to look up the Person ID and the Record ID and create an &lt;a href="http://blogs.msdn.com/b/healthvault/archive/2008/01/10/offlineline-sample.aspx"&gt;OfflineWebApplicationConnection&lt;/a&gt; using it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Discovering the application&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Yes, the application is built to be discovered! Once the &lt;a href="http://msdn.microsoft.com/en-us/healthvault/bb962148.aspx"&gt;Go-Live process&lt;/a&gt; is completed for the application we will help you to get the application listed in our &lt;a href="http://www.healthvault.com/personal/app-device.aspx"&gt;Application Directory&lt;/a&gt;. Another good place to showcase the application will be to have them listed in the corresponding mobile application stores. We will be happy to help you in case if you have any concerns on this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote sizset="0" sizcache="3"&gt;
&lt;p&gt;&lt;b&gt;4. &lt;/b&gt;&lt;b&gt;Analysis&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="109" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Scenario&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="264" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Advantage&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="252" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Disadvantage&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="109" valign="bottom"&gt;
&lt;p&gt;Authentication&lt;/p&gt;
&lt;/td&gt;
&lt;td width="264" valign="bottom"&gt;
&lt;p&gt;As all the HealthVault authorization and authentication process is done outside the mobile application and the whole HealthVault interaction code is inside the web services the mobile application will be lighter than any other architecture. Mobile application developer can concentrate more on the business logic.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="252" valign="bottom"&gt;
&lt;p&gt;As the authentication cannot be done directly in the mobile application this requires an additional step and user facing site (mostly a registration site) where users will be registering to use the application. As the architecture requires an Offline access scenario the Record ID and the Person ID will be retrieved in this step and then stored on the server for later use.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The retrieved Record ID and Person IDs will have to be stored and maintained in a secure location.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="109" valign="bottom"&gt;
&lt;p&gt;Deployment&lt;/p&gt;
&lt;/td&gt;
&lt;td width="264" valign="bottom"&gt;
&lt;p&gt;Deployment of the application becomes easy as the application does not have to be concerned about the platform changes to HealthVault.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="252" valign="bottom"&gt;
&lt;p&gt;The communication between the server and the mobile application requires a secure way for data transfer as the data being transferred is sensitive, adding to the maintenance and the longer execution time.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="109" valign="bottom"&gt;
&lt;p&gt;Certificate Handling&lt;/p&gt;
&lt;/td&gt;
&lt;td width="264" valign="bottom"&gt;
&lt;p&gt;In this architecture there is no need for distributing or maintaining the certificate with the application since it will be always kept inside the server.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="252" valign="bottom"&gt;
&lt;p&gt;This architecture adds additional overhead for maintaining the web services in the server.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="109" valign="bottom"&gt;
&lt;p&gt;SDK support&lt;/p&gt;
&lt;/td&gt;
&lt;td width="264" valign="bottom"&gt;
&lt;p&gt;The HealthVault interaction code, as it is developed outside the mobile platform, can utilize the existing HealthVault SDKs (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=95E14343-FB98-4549-BD29-225A59423CC9&amp;amp;displaylang=en"&gt;.Net SDK&lt;/a&gt;, &lt;a href="http://healthvaultjavalib.codeplex.com/releases/view/40181"&gt;Java SDK&lt;/a&gt;, &lt;a href="http://sourceforge.net/projects/healthvaultphp/"&gt;PHP SDK&lt;/a&gt; or &lt;a href="http://healthvaultrubylib.codeplex.com/releases/view/13031"&gt;Ruby SDK&lt;/a&gt;). Additionally the mobile application can use any program language that is allowed on the mobile device.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="252" valign="bottom"&gt;
&lt;p&gt;As the application does not directly communicate with the HealthVault platform each of the HealthVault interactions takes more time than is necessary.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;Let&amp;rsquo;s try the Rich Client (SODA) architecture&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Architecture&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Software on Device Authentication (&lt;a href="http://partners.mshealthcommunity.com/hv_eco/w/wiki/software-on-device-authentication.aspx"&gt;SODA&lt;/a&gt;) architecture is the relatively new architecture for HealthVault which helps you to develop rich client applications on any platform or any application architecture (Console application, Form application, etc.).&lt;/p&gt;
&lt;p&gt;This architecture was developed to support rich client application running on Windows platforms to talk directly to HealthVault. A good example of the same is HealthVault Connection Center. Interesting parts of this approach could be used in mobile context.&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/2514.image_5F00_5C296001.png"&gt;&lt;img height="99" width="349" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/8877.image_5F00_thumb_5F00_29C58C82.png" alt="image" border="0" title="image" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this architecture the application will also directly communicate with the HealthVault platform without requiring any extra web services. SODA allows each instance of the application to have its own application certificate, allowing each instance to be sandboxed from all other instances. This significantly lessens the risk if an application certificate becomes compromised.&lt;/p&gt;
&lt;p&gt;In the application, a GUID will be used to identify the application instance thus differentiating it from any other existing installations of the application. The HealthVault .Net SDK's SODA APIs that are used to create the Child application automatically create a new public and private key and add it to the current user&amp;rsquo;s certificate store without requiring the user to understand this process. The user can then authorize the Child application to communicate with the platform using an Offline connection. In &lt;a href="http://msdn.microsoft.com/en-us/library/ff803624.aspx"&gt;this&lt;/a&gt; MSDN post the complete steps of creating a SODA application using the HealthVault .Net SDK is listed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;Authentication&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/3755.Pic3_5F00_4974664A.png"&gt;&lt;img height="148" width="469" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/1425.Pic3_5F00_thumb_5F00_6204039A.png" alt="Pic3" border="0" title="Pic3" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;From an end user perspective the authorization process will look the same as any other HealthVault application. The only difference will be, as the application lacks an Action URL the user will not be directly taken back to the application after the authorization. Application will have to implement some polling mechanism or track the URLs to see whether the record authorization is done.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;HealthVault API interaction&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;SODA clients use OfflineWebApplicationConnection to communicate with HealthVault. The interaction happens directly from the mobile device using the certificate created by the application itself.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Discovering the application&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The story of application discoverability goes the same for this also. The HealthVault Application Directory and the mobile application stores will be the best place to showcase the application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;4. &lt;/b&gt;&lt;b&gt;Analysis&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote sizset="1" sizcache="3"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" style="width: 688px;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="127" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Scenario&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="246" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Advantage&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="313" valign="bottom"&gt;
&lt;p&gt;&lt;b&gt;Disadvantage&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="127" valign="bottom"&gt;
&lt;p&gt;Authentication&lt;/p&gt;
&lt;/td&gt;
&lt;td width="246" valign="bottom"&gt;
&lt;p&gt;Authorization steps are done on the mobile device itself so that user does not have to leave the application for it.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="313" valign="bottom"&gt;
&lt;p&gt;During authorization the user will be directly taken to the HealthVault authorization page which is not highly friendly for a mobile device, especially those which doesn&amp;rsquo;t have a zoom option, so you will have to make sure that this is in line with your user interface requirements. This is definitely an area where we are looking to improve ourselves soon. &lt;br /&gt;The HealthVault application authorization workflow in the HealthVault shell provides a redirect interface that can send the user to a web app after authorization, but getting this to work cleanly for a thick client app requires a few tricks. Look at a blog post entitled &amp;ldquo;Rich Client Options&amp;rdquo; in the HealthVault FAQ blog for more information. The current address of this post is: http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/24/rich-client-options. &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="127" valign="bottom"&gt;
&lt;p&gt;Deployment&lt;/p&gt;
&lt;/td&gt;
&lt;td width="246" valign="bottom"&gt;
&lt;p&gt;As each client application or application instance will have its own unique client ID each application instance is treated as a separate application by the platform. &lt;br /&gt;Directly communicating with the HealthVault platform improves the response time and stability of the application.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="313" valign="bottom"&gt;
&lt;p&gt;This approach may have technical difficulties on most of the mobile platforms and some intermediate web services might be needed to make this work.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="127" valign="bottom"&gt;
&lt;p&gt;Certificate Handling&lt;/p&gt;
&lt;/td&gt;
&lt;td width="246" valign="bottom"&gt;
&lt;p&gt;This avoids the requirement of distributing the certificates as the application will create the certificate and store in the local certificate store.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="313" valign="bottom"&gt;
&lt;p&gt;Mobile device should have the support for the certificate handling&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="127" valign="bottom"&gt;
&lt;p&gt;SDK support&lt;/p&gt;
&lt;/td&gt;
&lt;td width="246" valign="bottom"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width="313" valign="bottom"&gt;
&lt;p&gt;No mobile HealthVault SDK is available so far.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10095584" width="1" height="1"&gt;</description></item><item><title>Running a HealthVault Application in IIS without installing a certificate in the certificate store</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/11/10/running-a-healthvault-application-in-iis-without-installing-a-certificate-in-the-certificate-store.aspx</link><pubDate>Wed, 10 Nov 2010 19:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10089066</guid><dc:creator>Anish Ravindran</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10089066</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/11/10/running-a-healthvault-application-in-iis-without-installing-a-certificate-in-the-certificate-store.aspx#comments</comments><description>&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Starting with the HealthVault &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/ericgu/archive/2009/10/16/healthvault-0908-sdk-highlights.aspx"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;0908 SDK release&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;, HealthVault applications can run with an application&amp;rsquo;s certificate stored in a file store instead of in a certificate store by setting the ApplicationCertificateFileName key and its value in the web.config file. We often noticed that the developers facing issues in Windows Server 2008 R2 and Windows 7 machines while hosting HealthVault applications in IIS 7.5 and getting errors like &amp;lsquo;Error loading certificate. Is password specified using ApplicationCertificatePassword?&amp;rsquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;This issue is caused by the IIS Worker Process which runs under a Windows Identity account that doesn&amp;rsquo;t have enough &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/930b76w0%28VS.71%29.aspx"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;Code Access Security&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt; to call the security APIs. This is due to the DefaultAppPool setting that is used in IIS 7.5, which is the default, running under the &amp;lsquo;ApplicationPoolIdentity&amp;rsquo; account. Switching this account to the 'NetworkService' account allows you to run the HealthVault application in IIS without installing the certificate in certificate store. You can find detailed steps on how to switch a Windows Identity account here, &lt;/span&gt;&lt;a href="http://learn.iis.net/page.aspx/624/application-pool-identities/"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;http://learn.iis.net/page.aspx/624/application-pool-identities/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;We highly recommend using the certificate store because keeping the private key of an application intact and private is very important due to security reasons. If your configuration doesn't allow using a certificate store and you must use the file based certificate store then please ensure that a password is set for the certificate and keep it in a non-web accessible directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNoSpacing" style="margin: 0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10089066" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/certificates/">certificates</category><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Meet the Upgraded HealthVault Developer Center</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/05/24/meet-the-upgraded-healthvault-developer-center.aspx</link><pubDate>Mon, 24 May 2010 22:52:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014150</guid><dc:creator>Lowell Meyer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=10014150</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/05/24/meet-the-upgraded-healthvault-developer-center.aspx#comments</comments><description>&lt;p&gt;We are happy to announce the make-over of &lt;a href="http://developer.healthvault.com/"&gt;HealthVault Developer Center&lt;/a&gt;. The HealthVault Developer Center is an online site meant to complement the &lt;a href="http://msdn.microsoft.com/healthvault"&gt;MSDN HealthVault Developer Center&lt;/a&gt;, &lt;a href="http://config.healthvault-ppe.com"&gt;Application Configuration Center&lt;/a&gt; and &lt;a href="http://www.getrealconsulting.com/"&gt;GetReal&lt;/a&gt; developed &lt;a href="http://xray.getrealconsulting.com"&gt;X-Ray for HealthVault&lt;/a&gt; tool.&amp;#160; This site itself is a HealthVault application, and contains useful online tools to view raw user data, add editable sample data to a record and view methods &amp;amp; data-types schema documentation.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developer.healthvault.com/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/3443.clip_5F00_image001_5F00_03ABE675.jpg" width="460" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig 1. HealthVault Developer Center&lt;/p&gt;  &lt;p&gt;In this upgrade of HealthVault Developer Center in addition to &lt;strong&gt;new look and feel&lt;/strong&gt;, we have added following features -&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;u&gt;Ability to add samples for data types&lt;/u&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Developers can now add sample data to their development account directly through &lt;a href="http://developer.healthvault.com/pages/types/types.aspx"&gt;HealthVault DataType explorer.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/8461.clip_5F00_image0029_5F00_68D6AC94.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[9]" border="0" alt="clip_image002[9]" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/8233.clip_5F00_image0029_5F00_thumb_5F00_28CC2EDB.jpg" width="446" height="44" /&gt;&lt;/a&gt;     &lt;br /&gt;Fig 2. Ability to add samples for &lt;a href="http://developer.healthvault.com/pages/types/types.aspx"&gt;HealthVault data types&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;u&gt;Ability to edit samples&lt;/u&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We adding controls to edit the existing sample data. Most of these controls are auto-generated and the individual fields are also hooked up to auto-complete if the schema recommends a preferred vocabulary for the field.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/8206.clip_5F00_image00211_5F00_529BBB9C.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[11]" border="0" alt="clip_image002[11]" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/7142.clip_5F00_image00211_5F00_thumb_5F00_1E3720EF.jpg" width="269" height="194" /&gt;&lt;/a&gt;     &lt;br /&gt;Fig 3. Show-casing &lt;a href="http://developer.healthvault.com/pages/types/viewsamplexml.aspx?name=Allergy&amp;amp;id=52bf9104-2c5e-4f1f-a66d-552ebcc53df7"&gt;Allergy Episode Sample&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/4861.clip_5F00_image00213_5F00_11E53561.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[13]" border="0" alt="clip_image002[13]" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/0654.clip_5F00_image00213_5F00_thumb_5F00_3C311AE4.jpg" width="568" height="155" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig 4. Control enabling &lt;a href="http://developer.healthvault.com/pages/types/editsamplexml.aspx?id=d65ad514-c492-4b59-bd05-f3f6cb43ceb3&amp;amp;name=Allergic%20Episode "&gt;editing&lt;/a&gt; of Allergy Episode Sample.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;u&gt;Rich and Brows-able documentation for each data-type&lt;/u&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We have added rich brows-able documentation for each data-type.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/3817.clip_5F00_image00215_5F00_224CBEE8.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[15]" border="0" alt="clip_image002[15]" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/3821.clip_5F00_image00215_5F00_thumb_5F00_21A0B666.jpg" width="526" height="132" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig 5. &lt;a href="http://developer.healthvault.com/pages/types/type.aspx?id=30cafccc-047d-4288-94ef-643571f7919d "&gt;Brows-able&lt;/a&gt; documentation for Medication Type&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;u&gt;Each type now shows the version associated with it&lt;/u&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/1108.clip_5F00_image00217_5F00_0A35665B.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[17]" border="0" alt="clip_image002[17]" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-91-48-metablogapi/4774.clip_5F00_image00217_5F00_thumb_5F00_5DC86E0F.jpg" width="244" height="56" /&gt;&lt;/a&gt;     &lt;br /&gt;Fig 6. Type Versions for Medication Type in &lt;a href="http://developer.healthvault.com/pages/types/types.aspx"&gt;HealthVault DataType Explorer&lt;/a&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;u&gt;Ability to look at the content of GetServiceDefinition&lt;/u&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Developers can now directly read the HealthVault Service Definition through the &lt;a href="http://developer.healthvault.com/methods/methods.aspx"&gt;Methods Browser.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tell us what you think..&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Please feel free to comment on features you would like or report on bugs in this tool. We are planning to do a bug-fix update shortly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014150" width="1" height="1"&gt;</description></item><item><title>Accessing your application configuration</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/03/09/accessing-your-application-configuration.aspx</link><pubDate>Tue, 09 Mar 2010 18:03:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9975635</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9975635</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/03/09/accessing-your-application-configuration.aspx#comments</comments><description>&lt;p&gt;The HealthVault Application Configuration Center is available at &lt;a href="https://config.healthvault-ppe.com"&gt;https://config.healthvault-ppe.com&lt;/a&gt;.&amp;#160; You login to this tool with a HealthVault-PPE account and it will show you a list of ApplicationIds for which you have admin rights.&amp;#160; Generally you will see zero or one ApplicationIds in this list.&amp;#160; Here is the home screen that I see with one of my Microsoft accounts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Accessingyourapplicationconfiguration_8D75/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Accessingyourapplicationconfiguration_8D75/image_thumb.png" width="676" height="337" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are three ways for an application to get onto your list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Create AppId in Application Manager client:&lt;/strong&gt; when Application Manager uploads your ApplicationId information to the HealthVault-PPE platform, you will be prompted to login to the Application Configuration Center.&amp;#160; The account with which you login will become the admin account for this AppId.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Create AppId in Application Configuration Center: &lt;/strong&gt;there is a “Create a new application” link in the screenshot above.&amp;#160; If you use that link to create an AppId then the currently-logged-in account will be the admin for that AppId.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Submit a request:&lt;/strong&gt; if you don’t remember which account is your admin account, if you lost credentials to an admin account or if your ApplicationId was created before the existence of the Application Configuration Center then you can “reclaim” admin rights to your AppId by clicking the “submit a request” link on this page.&amp;#160; You will see the dialog box below.&amp;#160; Enter the AppId that you want to reclaim and the email address where you would like to receive the reclaim invitation.&amp;#160; A Microsoft person will review your request and verify that it is coming from a company that is associated with the application, then they will send the invitation mail to the specified email address.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Accessingyourapplicationconfiguration_8D75/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Accessingyourapplicationconfiguration_8D75/image_thumb_1.png" width="507" height="207" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9975635" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Rich client options</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/24/rich-client-options.aspx</link><pubDate>Wed, 24 Feb 2010 22:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9968918</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9968918</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/24/rich-client-options.aspx#comments</comments><description>&lt;P&gt;Most of our HealthVault documentation on samples focuses on building web applications but you can also use HealthVault with your rich client application.&amp;nbsp; We support two high-level approaches to doing this:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Intermediate web app&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;With this approach, your rich client application communicates with a web service that you develop.&amp;nbsp; That web service, in turn, communicates with HealthVault.&amp;nbsp; You install a private certificate on your web server and this server performs app authentication with the HealthVault service like any other web app.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The application authorization process can happen via a page that you host or via HealthVault &lt;A href="http://msdn.microsoft.com/en-us/healthvault/cc507205.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/cc507205.aspx"&gt;PatientConnect&lt;/A&gt;.&amp;nbsp; Either way, make sure to request Offline Access in your application configuration.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Software on Device Authentication&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Software on Device Authentication (or SODA) is a new option that we added in our &lt;A href="http://blogs.msdn.com/healthvault/archive/2009/08/27/healthvault-0908-release-notes.aspx" mce_href="http://blogs.msdn.com/healthvault/archive/2009/08/27/healthvault-0908-release-notes.aspx"&gt;0908 release&lt;/A&gt; in September 2009.&amp;nbsp; With SODA the end user authorizes a device (or client) to communicate directly with HealthVault.&amp;nbsp; A private certificate gets installed on the user’s PC or phone or other device, and then that device can perform the application authentication step with HealthVault.&amp;nbsp; The device can then use Offline connections to communicate with HealthVault.&amp;nbsp; Note that SODA applications will not have a user token and therefore cannot use OnlineConnections.&lt;/P&gt;
&lt;P&gt;Each installed instance of a SODA application will have its own unique ApplicationId. This ApplicationId is used by the application instance for all future offline sessions.&lt;/P&gt;
&lt;P&gt;The application authorization process includes a few steps that are unique to SODA applications.&amp;nbsp; Your rich client application must redirect into the HealthVault Shell so that end users can authorize access, but the Shell generally can’t redirect back to your rich client application using ActionUrl because client applications don’t generally host a web component.&amp;nbsp; This means that you have a few options for getting the user back into your application after application authorization: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The simplest approach is to display instructions within your client application that include telling the user to manually return to the application after app authorization is done.&amp;nbsp; The last screen that the user will see in the Shell looks like this: &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Richclientoptions_A4F1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Richclientoptions_A4F1/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Richclientoptions_A4F1/image_thumb.png" width=564 height=207 mce_src="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/Richclientoptions_A4F1/image_thumb.png"&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;Build a protocol handler for your client app and register this as your ActionUrl.&amp;nbsp; HealthVault Connection Center uses this approach so that the Shell can redirect to HVCC after App Auth.&lt;/LI&gt;
&lt;LI&gt;After you redirect to the Shell for app auth, have your application poll the HealthVault service until it sees that app authorization has been completed.&amp;nbsp; At this point your client app can move on to its post-authorization setup steps.&lt;/LI&gt;
&lt;LI&gt;If you already have a web presence, build a web app which hosts an ActionUrl that gives specific/custom instructions and guidance to your SODA end users.&amp;nbsp; You can then also customize the other ActionUrl targets described &lt;A href="http://msdn.microsoft.com/en-us/healthvault/cc265056.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/cc265056.aspx"&gt;here&lt;/A&gt;.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you do not specify an ActionUrl for your SODA app (which we expect to be the mainline case) then you can upload your Terms of Use and Privacy Statement to the HealthVault platform and the HealthVault shell will be able to display these to end users during the application authorization process.&amp;nbsp; Note that the HealthVualt shell only uses these statements if the ActionUrl is null/empty.&amp;nbsp; See this &lt;A href="http://blogs.msdn.com/healthvaultfaq/archive/2010/02/19/actionurl-privacy-and-terms-of-use.aspx" mce_href="http://blogs.msdn.com/healthvaultfaq/archive/2010/02/19/actionurl-privacy-and-terms-of-use.aspx"&gt;post&lt;/A&gt; for more details – we expect to change/improve this behavior by mid-2010.&lt;/P&gt;
&lt;P&gt;SODA leverages the HealthVault Master-Child application feature, so each instance of a particular SODA application is a child application of a master AppId which you (the developer) control.&amp;nbsp; In the case of a security issue, Microsoft is able to shut off an entire family of SODA applications with one flip of a switch.&lt;/P&gt;
&lt;P&gt;We published a guide to creating your own SODA application &lt;A href="http://msdn.microsoft.com/en-us/healthvault/ee708278.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/ee708278.aspx"&gt;here&lt;/A&gt; on MSDN.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9968918" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/authorization/">authorization</category><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/SODA/">SODA</category></item><item><title>ActionUrl, Privacy and Terms of Use</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/19/actionurl-privacy-and-terms-of-use.aspx</link><pubDate>Fri, 19 Feb 2010 21:47:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9966587</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9966587</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/19/actionurl-privacy-and-terms-of-use.aspx#comments</comments><description>&lt;p&gt;As many of you know, the HealthVault platform asks each application to register a single ActionUrl that understands a variety of redirect targets.&amp;#160; These redirects are generally used in scenarios where the application first redirects to the HealthVault Shell in order to accomplish some platformy task like App AuthZ or Record Picker and then the Shell wants to redirect back into the application once this task has been completed by the user.&amp;#160; We require that this URL is specified in advance rather than at run-time for security reasons – the HealthVault Shell will only redirect to URLs that have been reviewed by our HealthVault Go-Live Team.&lt;/p&gt;  &lt;p&gt;Some HealthVault applications do not have a web server upon which to host there ActionUrl.&amp;#160; For example,&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;PatientConnect applications tend not to have any UI of their own &lt;/li&gt;    &lt;li&gt;SODA applications run on fat clients, not on the web &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But the HealthVault Application Authorization process for these (and all) types of applications must include a way for the user to read the relevant Privacy Statement and Terms of Use before authorizing data sharing.&amp;#160; This is part of Microsoft’s Privacy Promise to our end users.&amp;#160; So for these types of applications, we allow the developer to load the entire body of each legal statement into their HealthVault Application Configuration and then the HealthVault platform can display this statement directly to the user when needed.&lt;/p&gt;  &lt;p&gt;Our &lt;a href="https://config.healthvault-ppe.com"&gt;Application Configuration Center&lt;/a&gt; does not currently make this part clear, but the platform only uses these hardcoded statements if no ActionUrl is specified in the application configuration.&amp;#160; If a non-empty ActionUrl is in the config then the HealthVault platform will ignore the statement fields.&lt;/p&gt;  &lt;p&gt;Note that we plan to change this behavior in our 1003 release, currently scheduled for March 2010.&amp;#160; After 1003 the platform will use the hardcoded statement in situations where both a statement and an ActionUrl are available.&lt;/p&gt;  &lt;p&gt;We apologize for any confusion that this state of affairs is causing.&amp;#160; If you have questions on this topic, please ask on our &lt;a href="http://social.msdn.microsoft.com/forums/en-US/healthvault/threads/"&gt;Developer Forum&lt;/a&gt; or use the Comments below.&lt;/p&gt;  &lt;p&gt;EDIT: You can learn more about the HealthVault Shell Redirect Interfaces in &lt;a href="http://msdn.microsoft.com/en-us/healthvault/cc265056.aspx"&gt;this article&lt;/a&gt; on MSDN.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9966587" width="1" height="1"&gt;</description></item><item><title>Absolute URLs for NonProductionActionUrlRedirectOverride</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/17/absolute-urls-for-nonproductionactionurlredirectoverride.aspx</link><pubDate>Wed, 17 Feb 2010 22:48:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9965384</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9965384</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/17/absolute-urls-for-nonproductionactionurlredirectoverride.aspx#comments</comments><description>&lt;p&gt;Our sample HealthVault applications in our HealthVault SDK all use relative paths for their NonProductionActionUrlRedirectOverride, but we have added support for absolute paths as well.&amp;#160; The “redirect” parameter in web.config now supports either a relative path or an absolute path.&lt;/p&gt;  &lt;p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #a31515; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;add&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: red; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;key&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;=&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;quot;&lt;span style="color: blue"&gt;NonProductionActionUrlRedirectOverride&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&lt;a href="http://www.example.com/blah/Redirect.aspx"&gt;http://www.example.com/blah/Redirect.aspx&lt;/a&gt;&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;Just like with relative URLs, this is only supported in non-Production environments.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9965384" width="1" height="1"&gt;</description></item><item><title>Creating your own ApplicationId and certificates</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/11/creating-your-own-applicationid-and-certificates.aspx</link><pubDate>Thu, 11 Feb 2010 23:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9962318</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9962318</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/02/11/creating-your-own-applicationid-and-certificates.aspx#comments</comments><description>&lt;P&gt;The Microsoft HealthVault SDK comes with a few sample applications and ApplicationIds which you can use in order to explore the platform and even to get started on your own application.&amp;nbsp; But at some point in your application development process, you will want to customize your ApplicationName and Logo.&amp;nbsp; You may also want to use additional data types or methods that the sample ApplicationIds cannot use.&lt;/P&gt;
&lt;P&gt;The application configuration for these sample ApplicationIds is controlled by Microsoft and we want to keep these configurations in a known-good state for other developers, so you cannot modify these configurations.&amp;nbsp; Luckily it is easy to create your own ApplicationId that you can then configure as you see fit.&amp;nbsp; There are two options for how to do this:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Easiest way: &lt;/STRONG&gt;If you have access to a computer running Microsoft Windows then you can use the HealthVault Application Manager client.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Start the Application Manager, which comes with the HealthVault SDK (it will be located in the install location “Microsoft HealthVault\SDK\Tools”).&lt;/LI&gt;
&lt;LI&gt;Click on the Create New Application button to create the new application.&lt;/LI&gt;
&lt;LI&gt;In the latest SDK it will give you a check-box to create a new Visual Studio website. Uncheck this option if you already have a project.&lt;/LI&gt;
&lt;LI&gt;Click on the button “Create and Register Application”.&amp;nbsp; This will create your application ID, register it in the Application Configuration Center and bring up the Application Configuration Center UI. You will need to log in with your LiveId/HealthVault account.&amp;nbsp; The account with which you login now will be given administrator rights for this ApplicationId.&amp;nbsp; There is a request form in the Application Configuration Center that you can use to invite other administrators.&lt;/LI&gt;
&lt;LI&gt;Once you are in configuration center, you can define the Online and Offline rules that are needed. Please choose only those data types and permissions that are needed for the application.&lt;/LI&gt;
&lt;LI&gt;Once the configuration is done, right click on the application ID in Application Manager and select Copy Application ID to Clipboard.&lt;/LI&gt;
&lt;LI&gt;Then paste the ID in the appSettings section in the Web.config file. Test your application to make sure it works as expected.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Harder way: &lt;/STRONG&gt;you can also create your certificate using a client application such as MakeCert.exe on Windows systems, and then upload it to Application Configuration Center yourself.&amp;nbsp; The process to create and install your certificate pair is outlined in detail in &lt;A href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx"&gt;this article&lt;/A&gt;.&amp;nbsp; To actually create the ApplicationId in the HealthVault-PPE environment, look for the &lt;A href="https://config.healthvault-ppe.com/CreateNewApp.aspx" mce_href="https://config.healthvault-ppe.com/CreateNewApp.aspx"&gt;create a new application&lt;/A&gt; link within the &lt;A href="https://config.healthvault-ppe.com/" mce_href="https://config.healthvault-ppe.com/"&gt;Application Configuration Center&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9962318" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/certificates/">certificates</category><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Managing Ownership of and Access to Your HealthVault Application Config</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/26/managing-ownership-of-and-access-to-your-healthvault-application-config.aspx</link><pubDate>Tue, 26 Jan 2010 22:34:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9953754</guid><dc:creator>Lowell Meyer</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9953754</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/26/managing-ownership-of-and-access-to-your-healthvault-application-config.aspx#comments</comments><description>&lt;p&gt;Have you ever needed or wanted to access or modify your application configuration, but couldn’t… because the developer who has the account to log in to the Application Configuration Center is out sick, not speaking with you, or is taking a permanent vacation to Bermuda?&amp;#160; Even if the answer is no, would you like to make sure this doesn’t happen to you in the future?&amp;#160; The correct answer is yes, and I’ll explain how to ensure this doesn’t happen to you below.&lt;/p&gt;  &lt;p&gt;There are two main things I’d like to quickly cover.&amp;#160; The first is to draw everyone’s attention to a new feature we’ve released in the HealthVault &lt;a href="https://config.healthvault-ppe.com" target="_blank"&gt;Application Configuration Center&lt;/a&gt;, the new “Admins” tab; the “Admins” tab allows you to add additional “Application Managers” who can then share access to your application configuration.&amp;#160; The second is to remind everyone that HealthVault accounts can actually have multiple IDs associated with them… so even if you only have one account set up to manage your HealthVault Application Configuration, you can have multiple Live IDs for different team members set up to access that single account.&lt;/p&gt;  &lt;p&gt;Beyond either of those things, we do recommend that businesses creating HealthVault applications set up IDs (Live ID or OpenID) that aren’t associated with specific individuals for use in managing their applications.&amp;#160; Many times individual accounts are used, and this can create problems when people leave organizations.&lt;/p&gt;  &lt;p&gt;Let’s work backwards.&amp;#160; Previously, you could only have one account set up to manage a particular application configuration.&amp;#160; This could be problematic at times, as developers might forget the access credentials, or the developer whose credentials were used may leave the company without transferring access first.&amp;#160; There has actually been a way around that, and while you can now add multiple accounts (see below), even with just a single account you can set it up to use multiple Live IDs.&lt;/p&gt;  &lt;p&gt;To do this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Log on to &lt;a href="http://www.healthvault.com" target="_blank"&gt;HealthVault.com&lt;/a&gt; using the ID associated with the application in the Application Configuration Center.&lt;/li&gt;    &lt;li&gt;Click on the account name in the top right corner of the page (it should say “Welcome, &amp;lt;FIRSTNAME LASTNAME&amp;gt;”)&lt;/li&gt;    &lt;li&gt;On the following page, you should see an option to “add another Live ID or OpenID”.&amp;#160; Click that.&lt;/li&gt;    &lt;li&gt;You’ll then be walked through a process to add or remove IDs associated with the HealthVault Account.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;All that being said… our new feature makes this process less of a necessary step.&amp;#160; You can now add more than one HealthVault account as an “application manager” for a particular application’s configuration.&amp;#160; To do this, just log in to the Application Configuration Center, select the application you want to add or remove app managers for, and then click on the Admins tab in the upper right.&amp;#160; It’s pretty self-explanatory once you get to that point, just put in the email address and name of anyone you want to add, or you can resend invites or remove managers directly.&lt;/p&gt;  &lt;p&gt;Setting these things up properly now will save you time and trouble later when you need to access your application configuration, but the developer with the account is out sick, or otherwise unavailable. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9953754" width="1" height="1"&gt;</description></item><item><title>Running HealthVault .NET SDK (1.1.2193.4712) on XP SP2</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/25/running-healthvault-net-sdk-1-1-2193-4712-on-xp-sp2.aspx</link><pubDate>Tue, 26 Jan 2010 01:56:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9953318</guid><dc:creator>VaibhavB [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9953318</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/25/running-healthvault-net-sdk-1-1-2193-4712-on-xp-sp2.aspx#comments</comments><description>&lt;p&gt;We have hardened the security protocols used in our .NET SDK (&amp;gt;= 1.1.2193.4712) to use SHA2 instead of SHA1. If you are running HealthVault &lt;a href="http://blogs.msdn.com/healthvault/archive/2009/11/13/healthvault-0910-release.aspx"&gt;0910&lt;/a&gt; or &lt;a href="http://blogs.msdn.com/healthvault/archive/2010/01/20/healthvault-1001-release.aspx"&gt;1001&lt;/a&gt; SDK (DLL Version 1.1.2193.4712) on an &lt;strong&gt;Windows XP SP2&lt;/strong&gt; (which doesn’t support FIPS compliant SHA2 natively), please add the following settings in web.config of your application to get the SDK to work for you. In future versions of SDK we will default to appropriate alternatives if the OS doesn’t support them.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Web.Config&lt;/strong&gt; :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
 &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;key&lt;/span&gt;&lt;span style="color: blue"&gt;="HashAlgorithmName" &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="SHA1" /&amp;gt;
 &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;key&lt;/span&gt;&lt;span style="color: blue"&gt;="HmacAlgorithmName" &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="HMACSHA1" /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: Changed the last line to reflect use of appropriate SHA2 alternatives if OS support is not available.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9953318" width="1" height="1"&gt;</description></item><item><title>Authorizing Additional Records or Switching the Active Record</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/07/authorizing-additional-records-or-switching-the-active-record.aspx</link><pubDate>Thu, 07 Jan 2010 01:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9944909</guid><dc:creator>Lowell Meyer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9944909</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2010/01/07/authorizing-additional-records-or-switching-the-active-record.aspx#comments</comments><description>&lt;FONT color=#910000 face=Verdana&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;We’ve gotten a lot of questions about how users can connect to and use their application for multiple HealthVault records from partners lately; we’ve also found a number of partners who didn’t consider the scenario of an existing user wanting to switch which HealthVault record is currently connected and authorized for their application.&amp;nbsp; These are all very important scenarios, and every HealthVault application should carefully consider how to handle them effectively.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;The nice part is that it’s very easy to do so.&amp;nbsp; HealthVault has been designed to manage switching records and using multiple records with an application in a very lightweight way that requires very little work on the part of the application developer.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;This is going to be a pretty long post—so if you want to skip over all the scenarios and context, and head straight to the implementation details and code, just scroll to the bottom.&amp;nbsp; There’s not much code required, and it’s down at the end. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Also, keep in mind that there are still two types of applications to consider here—“Single Record Applications” (or SRAs) that only work with one HealthVault record at a time, and “Multi Record Applications” (or MRAs) that understand how to work with multiple records simultaneously.&amp;nbsp; For the purposes of this post, we’re going to talk only about SRA applications, which are the most common type of application.&amp;nbsp; We’re also only talking about applications with an online user experience—so no PatientConnect or Drop-off-Pick-Up applications apply here either. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;So, let’s get started.&amp;nbsp; Before we get to &lt;B&gt;how&lt;/B&gt; to do this, we want to make sure everyone understands &lt;B&gt;why&lt;/B&gt; this is important and why effectively every application should include this functionality.&amp;nbsp; Let’s start from the beginning: the first time a user goes to your application and connects to HealthVault, they are redirected to HealthVault where they: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Create a new account, or sign into an existing account &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Create a new health record, or select an existing health record &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Review the application authorization request, and accept/reject it, and are then redirected back to the application &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;In #1 and #2, it’s important to note that a HV account can create and manage multiple health records (where each health record is for a single individual)… and that a record can be managed by multiple accounts.&amp;nbsp; There is a many-to-many relationship there.&amp;nbsp; If my wife and I both create accounts, and create records, and then share custodial access to our records with each other… then there will be two accounts, each with access to the same two records.&amp;nbsp; Or, if my wife creates an account, she can then create a record for herself, and a record for her mother, and another for a child (for example).&amp;nbsp; She would have one account that then has three records for three individuals… all using the same account sign in credentials. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;In general, HealthVault manages this complexity for applications.&amp;nbsp; You simply direct users off to authorize your application, and at the end you get either a wctoken to represent the signed in online session, or a PersonID/RecordID that can be used for offline communication to/from a user’s HealthVault record. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;However, there are a few user scenarios that make it a good idea to display to the user which record is currently linked (or “active”), and to display a link or button to change the current linked/active record.&amp;nbsp; This is because with the default parameters, returning users will automatically be using the previously active record (for online connections) or for applications using offline connections the PersonID and RecordID are stored by the app and don’t change unless the app lets the user change them.&amp;nbsp; The most relevant scenarios in which the app needs to let the user change active records are: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;If it’s been a few months since the user set things up, he may want to verify that the app is set up to read/write data to the correct HV record (he may have forgotten which record he authorized, for example), or may just want to head back to the app to make sure things are set up properly.&amp;nbsp; The user would click on the link on the HV side to go back to the application, and that would go to the Action URL’s HOME target.&amp;nbsp; The user would expect to be able to verify that they’ve already set up a connection, and to see the name of the HealthVault record currently receiving data. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;If the user accidentally selected the wrong record when authorizing your app (example: user has a HV account that manages 4 records, they intended to pick the 4&lt;SUP&gt;th&lt;/SUP&gt; record but instead left the default/1&lt;SUP&gt;st&lt;/SUP&gt; record selected), they may want to go back to the application and switch which record is set up to receive data.&amp;nbsp; This would change the association between the application user ID and the HealthVault record. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;If the user decides to create a new HealthVault account or record, and abandon the old one, they may want to go back to the application and either remove access (and then later add it to the new record), or switch from the old to the new in a single operation. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Some of these can be handled somewhat by severing the connection from the HealthVault side (and then connecting from the other record), but that isn’t always optimal, and many users have expressed their expectation that they would do this by going to the application to make changes, not HealthVault’s shell UI.&amp;nbsp; We strongly suggest supporting it from both sides… plus, exposing it from the app allows the application to handle the change gracefully, rather than having to catch Access Denied errors from HealthVault after the user breaks the connection from the HV side. &lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Anyhow—the functionality to do all this is pretty simple, thankfully.&amp;nbsp; For returning users, you just need to: &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Read and display the active record name (so users know which record is active, and can decide if they want or need to change the active record) &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Display basic HTTP links for the switch record and (less important, but also helpful) remove access functions.&amp;nbsp; &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l3 level2 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;a.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Those are static links that go to HealthVault and pass in some parameters to tell HV to send the user through the appropriate workflow (using the Shell Redirect feature, the server-side equivalent of the client’s Action URL Redirect—using the AUTH target and the FORCEAPPAUTH parameter). &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Handle the “SelectedRecordChanged” Action URL target (which can point to an existing target as long as your code handled the record change properly there) &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;In practice, &lt;B&gt;for those using the .NET SDK&lt;/B&gt;, this involves: &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo4" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Editing your web.config and adding a new entry like the following, replacing src.aspx with an appropriate page to handle the SELECTEDRECORDCHANGED target (if your code needs custom logic to grab the new PersonID/RecordID and save it to a local DB, for example… native apps can likely just use their normal default page): &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo4" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;a.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;STRONG&gt;&amp;lt;add key="WCPage_ActionSelectedRecordChanged" value="src.aspx"/&amp;gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo4" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt; mso-bidi-font-family: verdana; mso-fareast-font-family: verdana"&gt;&lt;SPAN style="mso-list: ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;Handling the “Change User” or “Switch Record” button/link with the following code: &lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;STRONG&gt;this.RedirectToShellUrl("AUTH", "appid=" + this.ApplicationId.ToString() + "&amp;amp;forceappauth=true", "passthroughParam=optional");&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;For non .NET SDK apps&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;, or those who prefer a static link, you just need to add a hyperlink of the following form: &lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;SPAN style="COLOR: black"&gt;https://account.healthvault-ppe.com/redirect.aspx?target=AUTH&amp;amp;targetqs=appid%3D82d47a5a-d435-4246-895a-746c475090d3%26&lt;B&gt;forceappauth&lt;/B&gt;%3Dtrue&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;As well as handling the SELECTEDRECORDCHANGED target on your Action URL redirect handler. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;I’ll include one example here to illustrate a bit.&amp;nbsp; If you go to the (free) American Heart Association Heart 360 app (&lt;SPAN style="COLOR: black"&gt;&lt;A href="http://www.heart360.org/" target=_blank mce_href="http://www.heart360.org"&gt;http://www.heart360.org&lt;/A&gt;&lt;/SPAN&gt;), the first page lets you get started, which has the user sign in, and authorize the app if that hasn’t already happened.&amp;nbsp; If it has, then the user just signs in to an online session.&amp;nbsp; If the user has an account with multiple records, and has already authorized one of the records, the next time they go back and sign in, that previous record is automatically selected. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;The next page includes a “Welcome back, &amp;lt;FIRST NAME&amp;gt;” string in the upper right that is using the HealthVault selected/active record name, and to the right of that has a “Change User” link.&amp;nbsp; The “Change User” link uses the HealthVault Shell URL redirect with the AUTH target and the FORCEAPPAUTH=true parameter in order to allow the user to either connect and use an additional record, or just to switch the current record. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;And, for reference, the record select screen you should see on the HealthVault side looks like:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="HealthVault Select Record UI" border=0 alt="HealthVault Select Record UI" src="http://blogs.msdn.com/blogfiles/healthvaultfaq/WindowsLiveWriter/AuthorizingAdditionalRecordsorSwitchingt_EDF3/select_record_3.jpg" width=644 height=594&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9944909" width="1" height="1"&gt;</description></item><item><title>Microsoft.Health.HealthServiceException: The thing type specified in the update, 'bf516a61-5252-4c28-a979-27f45f62f78d', is an older version than the type of the existing instance.</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/12/21/microsoft-health-healthserviceexception-the-thing-type-specified-in-the-update-bf516a61-5252-4c28-a979-27f45f62f78d-is-an-older-version-than-the-type-of-the-existing-instance.aspx</link><pubDate>Mon, 21 Dec 2009 23:54:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9939854</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9939854</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/12/21/microsoft-health-healthserviceexception-the-thing-type-specified-in-the-update-bf516a61-5252-4c28-a979-27f45f62f78d-is-an-older-version-than-the-type-of-the-existing-instance.aspx#comments</comments><description>&lt;p&gt;You will see the error above if you try to update an instance of the BasicDemographicInformation HealthRecordItem type that is stored in the v2 type schema from an application that “speaks” the v1 type schema.&lt;/p&gt;  &lt;p&gt;In our recent 0910 release we updated the Basic Demographic Information HealthRecordItem type to use Codable Values for State/Province and Country. This helps make the data more consistent across applications, but it means that we had to version the data type.&amp;#160; &lt;/p&gt;  &lt;p&gt;Eric Gunnerson’s &lt;a href="http://blogs.msdn.com/ericgu/archive/2008/10/13/versioning-in-healthvault.aspx"&gt;blog post&lt;/a&gt; describes how data type versioning is handled within the HealthVault platform and my &lt;a href="http://blogs.msdn.com/healthvaultfaq/archive/2009/09/21/more-about-data-type-versioning.aspx"&gt;blog post&lt;/a&gt; three months ago elaborates a bit on this topic.&amp;#160; But the recent revision of Basic Demographic Info gives me a chance to expand a bit more, discuss some corner cases and give some examples.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Data Type Details&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can see the type details in our HealthRecordItem Type Schema Browser: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://developer.healthvault.com/types/type.aspx?id=bf516a61-5252-4c28-a979-27f45f62f78d"&gt;bf516a61-5252-4c28-a979-27f45f62f78d&lt;/a&gt; is the older version of BasicDemographicInfo. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://developer.healthvault.com/types/type.aspx?id=3b3e6b16-eb69-483c-8d7e-dfe116ae6092"&gt;3b3e6b16-eb69-483c-8d7e-dfe116ae6092&lt;/a&gt; is the newer version of BasicDemographicInfo.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can also see the type details in our &lt;a href="http://msdn.microsoft.com/en-us/library/aa155093.aspx"&gt;MSDN Library&lt;/a&gt;, which always documents our most recent SDK version (as of right now, version 1.1.2193.4712).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.health.itemtypes.basicv2.aspx"&gt;Microsoft.Health.ItemTypes.BasicV2&lt;/a&gt; – this is the new type&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.health.itemtypes.basic.aspx"&gt;Microsoft.Health.ItemTypes.Basic&lt;/a&gt; – this is the old type&lt;/li&gt;    &lt;li&gt;For types that got revised before 0908, we moved the old schemas to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.health.itemtypes.old.aspx"&gt;Microsoft.Health.ItemTypes.Old namespace&lt;/a&gt;.&amp;#160; But in order to ensure binary compatibilty between SDK releases moving forward, we have switched are naming approach as described above.&amp;#160; From now on, old versions of data types will retain their current name and namespace and the new type version will be “burdened” with the new name.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;How this impacts you&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have a HealthVault application which is already live and you interact with Basic Demographic Information then you are almost certainly using the older version of the schema.&amp;#160; Per the descriptions in Eric’s and my blog posts, if you ask the HealthVault platform for Basic Demographic Information then it will return all of the instances of both v1 and v2 of the data type.&amp;#160; Any v2 instances will be downconverted into v1 of the schema.&amp;#160; &lt;strong&gt;These downconverted instances will be read-only to your application.&lt;/strong&gt;&amp;#160; If you try to update any of these downconverted instances then you will see the error message above.&lt;/p&gt;  &lt;p&gt;The HealthVault Shell has been updated to use the new version of Basic, &lt;a href="http://developer.healthvault.com/types/type.aspx?id=3b3e6b16-eb69-483c-8d7e-dfe116ae6092"&gt;3b3e6b16-eb69-483c-8d7e-dfe116ae6092&lt;/a&gt;. This means that any new account will have its Basic Demographic Information stored in the new schema.&amp;#160; It also means that any user who updates their Basic Demographic Info in the Shell will get moved to the new schema. &lt;/p&gt;  &lt;p&gt;You have two options in order to avoid this error, and both require a code change:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Stay on the 1.0.2145.4504 and don’t update BasicV2 instances.&amp;#160; You can accomplish this by capturing this exception and letting the user know that an update of this item was not possible, but I’d rather not wait until the user tries to save changes.&amp;#160; Instead, look at the &lt;strong&gt;IsDownversioned &lt;/strong&gt;property on each instance of basic and tell the user when an instance is read-only using your own UI cues.&amp;#160; You should also give the user a workaround for updating this information, such as using the &lt;a href="https://account.healthvault.com"&gt;HealthVault Shell&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Move to the 1.1.2193.4712 SDK &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Moving Forward&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We don’t update data types all that often, and few of our data types are singletons so it is unlikely that you’ll see this issue again in the near future.&amp;#160; But you can “future-proof” your application by looking for the &lt;strong&gt;IsDownversioned &lt;/strong&gt;flag on each HealthRecordItem instance before you allow the user to attempt an update.&lt;/p&gt;  &lt;p&gt;We are considering some revisions to our approach to data type versioning that may simplify this process for developers.&amp;#160; Keep an eye on the &lt;a href="http://blogs.msdn.com/healthvault"&gt;HealthVault Developer Blog&lt;/a&gt; for announcements about updates to the HealthVault platform.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9939854" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/Data/">Data</category><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/debugging/">debugging</category></item><item><title>IP Filtering Config</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/12/14/ip-filtering-config.aspx</link><pubDate>Tue, 15 Dec 2009 01:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9936834</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9936834</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/12/14/ip-filtering-config.aspx#comments</comments><description>&lt;P&gt;You may notice that the newest version of the Application Configuration Center contains fields for configuring your IP Filtering settings.&amp;nbsp; This extra security measure is not generally needed for HealthVault applications, except in special cases.&amp;nbsp; If you enter a non-null address range in this field then you will effectively turn on filtering for your application in HealthVault-PPE.&amp;nbsp; If you do this accidentally then you can turn IP filtering off again by clearing out this field.&lt;/P&gt;
&lt;P&gt;If you have&amp;nbsp;an application which is live in the production&amp;nbsp;HealthVault environment and are using IP Filtering there, you still need to go through the Microsoft team in order to update your Production settings as the settings in the config tool are for PPE.&amp;nbsp; You can contact Microsoft for these types of updates via the &lt;A href="mailto:hsg-pn@microsoft.com"&gt;hsg-pn@microsoft.com&lt;/A&gt; email alias.&amp;nbsp; Expect the update to take a few business days.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9936834" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Updating an application configuration in Production</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/09/updating-an-application-configuration-in-production.aspx</link><pubDate>Mon, 09 Nov 2009 22:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919839</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9919839</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/09/updating-an-application-configuration-in-production.aspx#comments</comments><description>&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;You can&amp;nbsp;create and update your ApplicationId configuration in our Developer/PreProduction&amp;nbsp;environment by accessing &lt;A href="https://config.healthvault-ppe.com/"&gt;https://config.healthvault-ppe.com&lt;/A&gt;.&amp;nbsp; The App Manager tool in our HealthVault SDK also connects to this config site.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;But t&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;his configuration site is only available in non-Production environments.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Microsoft reviews the data access for each application before it goes live, in an effort to ensure that the data set is reasonable for the implied intent of the application.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Therefore any updates to a Production configuration can only be performed by the Microsoft team.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You must make the config changes in PPE first and then test/verify that they work with your app.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Then you submit an email request to &lt;A href="mailto:HvGoLive@microsoft.com"&gt;&lt;FONT color=#0000ff&gt;HvGoLive@microsoft.com&lt;/FONT&gt;&lt;/A&gt; so that we can review the changes and then push the changes for you.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;If you are making major changes to your configuration and want the config updates to coincide with the deployment of new code, we are generally able to schedule the push of a config update to coincide with your deployment.&amp;nbsp; We ask that you give us a few business days' notice for such a push, or a bit longer if the push will be outside of west-coast US business hours.&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/app+config/">app config</category></item><item><title>Handling HealthServiceCredentialTokenExpiredException in .NET SDK</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/06/handling-healthservicecredentialtokenexpiredexception-in-net-sdk.aspx</link><pubDate>Fri, 06 Nov 2009 20:15:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918779</guid><dc:creator>VaibhavB [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9918779</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/06/handling-healthservicecredentialtokenexpiredexception-in-net-sdk.aspx#comments</comments><description>&lt;p&gt;Applications are expected to Handle the HealthServiceCredentialTokenExpiredException. The best way to handle this error is to Redirect the user to sign-on again, the best place to implement it in your basepage’s page error handler. Here is some sample code which accomplishes the same, please note this code should be in our basepage or any page deriving from HealthServicePage :&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;This error block handles the case of an expired user token. User
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;tokens expire after 24 hours or time set by persistent tokens
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;for the &amp;quot;keep me sign-in&amp;quot; feature. These tokens and are stored in the cookie,
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;which has no default timeout. Developers are encouraged to expire cookies 
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;sooner, but this code handles the case where the cookie does not
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;expire and the browser window is left open for over 24 hours.
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;protected void &lt;/span&gt;Page_Error(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e)
{
    &lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex = Server.GetLastError();

    &lt;span style="color: blue"&gt;if &lt;/span&gt;(ex &lt;span style="color: blue"&gt;is &lt;/span&gt;HealthServiceCredentialTokenExpiredException)
    {
        WebApplicationUtilities.RedirectToLogOn(HttpContext.Current);
    }

    ShowError(ex);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Your page will need to implement ShowError method or you comment it and re-throw the un-caught exceptions.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918779" width="1" height="1"&gt;</description></item><item><title>More About Certificate Errors</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/05/more-about-certificate-errors.aspx</link><pubDate>Thu, 05 Nov 2009 21:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918259</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9918259</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/11/05/more-about-certificate-errors.aspx#comments</comments><description>&lt;P&gt;Here is some help on diagnosing some of the common modes of failure with HealthVault certificate management.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Access denied&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The most common cause of this error is that the application can find the certificate but the account running the app does not have the proper permissions to utilize its private key at run-time.&amp;nbsp; See the end of &lt;A href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx"&gt;this article &lt;/A&gt;for more information on giving permissions manully, or use the App Manager tool in the SDK.&lt;/P&gt;
&lt;P&gt;This error can also be triggered by attempting a read/write which the user has not authorized, or a number of other authorization-related errors.&amp;nbsp; You may need to look at the stack trace in order to figure out where your error lies.&amp;nbsp; But if you have never successfully connected to HealthVault from Machine X with AppId Y, the certificate is the best place to start.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Keyset does not exist&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I have seen this in two different scenarios:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Application certificate is in the cert store, but that certificate only contains a public key.&amp;nbsp; So the app finds the cert but can't find the keyset that it wants.&lt;/LI&gt;
&lt;LI&gt;Application certificate is in the file system but the application's service account&amp;nbsp;doesn't have permission on this folder or file.&amp;nbsp; Having not run this scenario myself, I would have expected this to be another "access denied" but I learned today that it gives a "keyset does not exist" error.&lt;/LI&gt;&lt;/UL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918259" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/certificates/">certificates</category></item><item><title>Certificate Errors</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/22/certificate-errors.aspx</link><pubDate>Fri, 23 Oct 2009 00:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911776</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9911776</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/22/certificate-errors.aspx#comments</comments><description>&lt;P&gt;Got a good question today from a long-time HealthVault Developer -- at least they are long-time in terms of the short history of HealthVault.&lt;/P&gt;
&lt;P&gt;If your &lt;A href="http://blogs.msdn.com/healthvaultfaq/archive/2009/10/19/certificate-management.aspx" mce_href="http://blogs.msdn.com/healthvaultfaq/archive/2009/10/19/certificate-management.aspx"&gt;application certificate&lt;/A&gt; is not configured correctly, either on your app server or on the HealthVault server, the first time that you will see an error is the first time that your application tries to read or write data to/from the HealthVault platform.&amp;nbsp; This means that your end users (or more likely your test accounts) can successfully go through Application Authorization before they will see this error.&lt;/P&gt;
&lt;P&gt;The fact that you get through App AuthZ without seeing any errors may lead you to believe that your certificate must be correct, but that is not the case.&amp;nbsp; If you see an "Access Denies" error the first time that you try to load a page containing health information, then the most likely cause of your issue is an improperly configured application certificate.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;See the post linked above for more information on certificate management.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911776" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/certificates/">certificates</category></item><item><title>HealthVault Response Paging</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/19/healthvault-response-paging.aspx</link><pubDate>Mon, 19 Oct 2009 22:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909530</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9909530</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/19/healthvault-response-paging.aspx#comments</comments><description>&lt;P&gt;There is a parameter on the HealthRecordFilter object called MaxFullItemsReturnedPerRequest and it is set to 240 by default.&amp;nbsp; If your search returns more than MaxFullItemsReturnedPerRequest items then you will get full items for the first &lt;EM&gt;max&lt;/EM&gt; items and then HealthRecordItemIds for the remaining items.&amp;nbsp; You can then retrieve the other items by ID.&lt;/P&gt;
&lt;P&gt;If you are using the .NET HealthVault SDK then all of this logic is handled for you.&amp;nbsp; The HealthRecordItemCollection returned by GetMatchingItems will appear to contain all of the items. Attempts to work with the guts of an item that is still on the server will trigger the retrieval of that information.&lt;/P&gt;
&lt;P mce_keep="true"&gt;(update on 10/21/2009: the default for MaxFullItemsReturnedPerRequest&amp;nbsp;is 240.&amp;nbsp; I originally said 30 and that is incorrect.)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909530" width="1" height="1"&gt;</description></item><item><title>Certificate Management</title><link>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/19/certificate-management.aspx</link><pubDate>Mon, 19 Oct 2009 22:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909507</guid><dc:creator>Chris Tremonte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/healthvaultfaq/rsscomments.aspx?WeblogPostID=9909507</wfw:commentRss><comments>http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/19/certificate-management.aspx#comments</comments><description>&lt;P&gt;We get a lot of questions about managing your HealthVault application certificate.&amp;nbsp; When your application initiates a connection to HealthVault, it uses its unique private key to encrypt the first handshake message that it sends.&amp;nbsp; HealthVault then uses a public key to verify that the sender of this message is indeed a trusted host.&amp;nbsp; This public key must be registered with HealthVault before such connections can be made.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Generating your key pair and installing your private key&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You can generate your key pair in one of two ways:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use the MakeCert.exe tool which ships with the &lt;A href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/HealthVaultSDK.exe" mce_href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/HealthVaultSDK.exe"&gt;HealthVault SDK&lt;/A&gt; and is &lt;A href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/makecert.exe" mce_href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/makecert.exe"&gt;available&lt;/A&gt; on MSDN.&amp;nbsp; This&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx"&gt;doc&lt;/A&gt; on MSDN has more information on using MakeCert.&lt;/LI&gt;
&lt;LI&gt;Use the Application Manager tool which ships with the &lt;A href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/HealthVaultSDK.exe" mce_href="http://download.microsoft.com/download/8/9/1/891600C3-64EF-4BBC-A883-279C2365625F/HealthVaultSDK.exe"&gt;HealthVault SDK&lt;/A&gt;.&amp;nbsp; Application Manager makes it easy to create a new AppId and certificate pair at the same time.&amp;nbsp; Application Manager does not handle the scenario of creating a new certificate pair for an existing application.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Once you have generated your key pair, you can install it for use by your application in one of three ways:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Cert store, default name.&lt;/STRONG&gt;&amp;nbsp; Application Manager gives your certificate the default name, "WildcatApp-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx," and places it in the default location.&amp;nbsp; The HealthVault&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/bb814945.aspx"&gt;instructions&lt;/A&gt; on using MakeCert also give the cert the default name and place it in the default location.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cert store, non-default name.&lt;/STRONG&gt;&amp;nbsp; To specify your certificate name, specify the full subject name of the cert (CN=) in the &amp;lt;appSettings&amp;gt; section of your web.config file as follows:&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.25in" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt"&gt;appSettings&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 1.25in" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"&gt;key&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"&gt;"&lt;SPAN style="COLOR: blue"&gt;AppCertSubject&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;value&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;[full_cert_subject_name]&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.25in" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt"&gt;appSettings&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;File system.&lt;/STRONG&gt;&amp;nbsp; If you&amp;nbsp;choose to take this approach then make sure that the following two things are true:&amp;nbsp;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;The IIS worker process has access to read the file&lt;/LI&gt;
&lt;LI&gt;The file is not stored in a location where it is visible on your web site.&amp;nbsp; Don't put it inside your web application path but in a secure file path not visible in IIS.&lt;/LI&gt;
&lt;LI&gt;To store your certificate on the local file system, you must add an additional entry in your web.config to tell the HealthVault SDK code where to look for the certificate, as follows.&amp;nbsp; (This is also added to the &amp;lt;appSettings&amp;gt; section.)&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.25in; mso-list: l0 level2 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #c00000; FONT-SIZE: 10pt; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"&gt;key&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"&gt;"&lt;SPAN style="COLOR: blue"&gt;ApplicationCertificateFileName&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;value&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;C:\someFolderName\cert\HelloWorld-SDK_ID-05a059c9-c309-46af-9b86-b06d42510550.pfx&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; /&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: #c00000; FONT-SIZE: 10pt"&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Note: the file path is an absolute local file path; relative path names are not allowed&lt;/LI&gt;
&lt;LI&gt;If you configured your private key to require a password for use, then you can/must specify this password in your web.config by using the&amp;nbsp;&lt;STRONG&gt;ApplicationCertificatePassword&lt;/STRONG&gt; parameter&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Registering&amp;nbsp;your Public Key&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In PPE, you can register your public key in one of two ways:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use the Application Manager tool in the .NET HealthVault SDK to upload a new ApplicationId and its certificate.&amp;nbsp; Note that this workflow is only for creating new applications.&amp;nbsp; You cannot add a new certificate to an existing application this way.&lt;/LI&gt;
&lt;LI&gt;Login to the Application Configuration Center at &lt;A href="https://config.healthvault-ppe.com/"&gt;https://config.healthvault-ppe.com&lt;/A&gt;&amp;nbsp;and click on the "Public Certs" tab.&amp;nbsp; You can upload additional CER files here.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Note that each application in the HealthVault-PPE environment has exactly one HealthVault-PPE account that has been set up with config access.&amp;nbsp; If you need to set up a new account with config access, you can request this access via a link on the App Config Center home page.&lt;/P&gt;
&lt;P&gt;In Production, the only way to register your public key is to go through the HealthVault &lt;A href="http://msdn.microsoft.com/en-us/healthvault/bb962148.aspx" mce_href="http://msdn.microsoft.com/en-us/healthvault/bb962148.aspx"&gt;Go-Live process&lt;/A&gt;.&amp;nbsp; If your application is already live and you need to update or replace its public key, you can file a request with HealthVault Developer Support &lt;A href="http://support.microsoft.com/oas/default.aspx?prid=13277&amp;amp;ln=en-us" mce_href="http://support.microsoft.com/oas/default.aspx?prid=13277&amp;amp;ln=en-us"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909507" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/healthvaultfaq/archive/tags/certificates/">certificates</category></item></channel></rss>