关于您的需求“我很想验证用户是否在使用我的Windows 8应用程序,而不仅仅是使用Fiddler的一些'黑客'。”,我不确定您会如何保护您的应用程序想要尝试以不同的方式使用应用程序,该方法会找到自己的方式,如果您认为使用ACS或LiveSDK可以增加任何安全性,我不这么认为。
ACS或LiveSDK服务是验证特定用户的方法,然后允许他们使用您的应用程序。一旦将认证令牌提供给您的应用程序有关特定用户,并且您无法保存并再次验证该信息,则在您的应用程序中使用基于ACS/LiveSDK的身份验证或不拥有它们之间没有区别。这些基于oAuth的服务只是对用户进行身份验证的一种方式,您仍然需要编写额外的代码层来提供用户特定的服务。
如果您使用ACS/oAuth /或您自己的会员服务,则无关紧要,用户必须输入用户名和密码才能获得经过身份验证的时间。根据登录时间和类型,您可以将用户活动时间保持x秒,但会话将过期,用户必须输入用户名和密码。本地存储用户名和密码以避免再次输入凭据不是一个好的应用程序设计。
现在关于您的第一个问题,您应该使用LiveSDK(而不是Azure ACS)来验证Live(Hotmail,Live,Skydrive和Outlook域)用户,因为在Windows 8中,大多数服务都使用这些ID,这些将帮助您的应用程序成为同一生态系统的一部分。您可以使用this latest doc在您的应用程序中使用Live SDK。如果您将在Windows 8应用程序中使用Live SDK,并且用户在Windows 8上为其他应用程序使用相同的实时ID并在应用程序之前登录,则应用程序已经拥有实时会话以使用它,具体取决于Live ID和应用程序设置。
关于第二个问题“加密并存储用户的登录详细信息以防止用户每次都输入登录详细信息?”我不确定你为什么需要它。首先没有oAuth服务会为您提供除用户名以外的用户登录凭证,只有您可以保存才能验证用户,如果他再次访问并且您可以使用它来确保它是合适的用户。您必须将此信息存储到云中,然后一旦通过身份验证,就可以做任何你想做的事情。
由于您的应用程序在Windows 8上,并且您希望使用Microsoft帐户,您是否考虑过直接使用Live SDK? Michael Crump在http://www.silverlightshow.net/items/Using-the-Live-SDK-in-Windows-8-XAML-C-Metro-Applications.aspx上有关于将Live SDK与WinRT应用程序集成的文章 –