1

我迷路了。我正在开发一个 Windows Phone 7 应用程序,我想做以下事情:

我想使用 Facebook、Live ID、Google 和 Yahoo 让用户登录我的应用。而且,如果他们没有任何这些帐户,我将需要在 Windows Azure 上实现注册界面。

我还需要从登录我的应用程序的用户那里存储一些 ID。例如,Facebook 返回该用户的 ID。但谷歌、Live ID 和 Yahoo! 返回另一个 ID。我将其存储在具有以下列的用户表中:

ID | Sing-IN-Type | ID-returned

ID:主键。

Sing-IN-Type:具有 Facebook、Google 等名称的表的外键。

ID-returned:这些网站返回的 ID。

我已经阅读了有关 ACS v2 的信息,但我不确定它是否符合我的要求。你怎么看?

4

2 回答 2

2

ACS 团队发布了一个示例,演示了如何使用 silverlight 浏览器控件在手机应用程序中实现联合身份验证:

http://acs.codeplex.com/wikipage?title=ACS%20Windows%20Phone%20Sample&referringTitle=Samples

该示例不会解析令牌以提取您所追求的声明,但它不需要太多代码来完成它。

登录后,应用程序将从 ACS 返回的令牌缓存在作为 MainPage 成员的 RequestSecurityTresponseStore 中。您可以使用 DPE.OAuth 项目中包含的简单 Web 令牌 (SWT) 处理程序。在 MainPage.xaml.cs 的上下文中,代码如下所示:

SimpleWebToken swt = (SimpleWebToken)SimpleWebTokenHandler.GetTokenFromString( _rstrStore.SecurityToken );

然后,您应该找到 ACS 在 swt.Parameters 中发出的 IdentityProvider(登录类型)和 NameIdentifier(用户 ID)声明。

如果您想在这种情况下托管您自己的自定义登录页面,ACS 也为此提供了功能:

http://msdn.microsoft.com/en-us/library/gg185963.aspx

于 2011-04-25T19:32:15.623 回答
0

您还可以查看身份框架中的动手实验室

于 2011-07-27T05:22:08.047 回答