1

您好亲爱的贡献者!

我又拖延了,我已经研究了一个教程或一些关于如何改编这个精彩教程的方向:

http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_ACSAndWindowsPhone7

到浏览器中的 silverlight 应用程序而不是 windows 手机?我想保留当前的模型,包括公共和私人数据库,并在理想情况下将 silverlight 应用程序插入 azure 社交游戏包:

https://github.com/WindowsAzure-Toolkits/wa-toolkit-games

它使用类似的 ACS 模式,我需要的方向是关于 Oauth2 的客户端处理。

提前感谢您在此问题上的任何帮助。

4

1 回答 1

2

如果它是浏览器内的 silverlight 应用程序,为什么不将其视为常规网站?流程将类似于

  1. 用户浏览您的应用
  2. 在您发送 XAP 之前,您的网站会显示身份提供者列表。用户选择一个并被重定向到登录。
  3. 用户登录后,您将收到一个发布到您的应用程序(即社交游戏工具包)的令牌。好消息是社交游戏工具包已经在网站上提供了与 ACS 的集成,因此无需做太多工作。用户将获得由 Windows Identity Foundation 生成的 cookie,其中包含声明(目前不涉及 Silverlight)。
  4. 现在您发送 XAP 并加载 Silverlight 应用程序
  5. 从现在开始,从 XAP 到您的应用程序(将具有社交游戏工具包)的每个请求都将填充 Principal,因为 WIF cookie 会在每个请求中发送。

如果您想稍微改变用户体验,而不是在常规的 HTML/asp.net 页面中显示身份提供者列表,您想从 Silverlight 应用程序(如 Windows Phone 实验室显示)中完成。然后,您只需要使用 ACS JSON 端点,该端点列出了您的 Silverlight 应用程序中的身份提供者。

该工具包已经在这样做了,您可以从以下内容中提取基本思想:

https://github.com/WindowsAzure-Toolkits/wa-toolkit-games/blob/master/code/SocialGames.Web/Services/AuthService.cs#L29

以 JSON 格式获取身份提供者列表的请求如下所示:

https://your_servicenamespace.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=your_application_realm&version=1.0&context=some_contextual_data_youwanttokeepacrossredirects "

最后,这个实验室也应该对你有所帮助

http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010

FWIW,Windows Phone 的工作方式是使用 ACS 中的 JavaScript 通知端点,这与我上面描述的不同。

流程类似于

  1. 手机显示登录选项(Facebook、LiveID 等)
  2. 用户点击其中之一
  3. 用户被重定向到 ACS,然后被重定向到选择的身份提供者
  4. 用户登录并将某种令牌发送回 ACS(取决于身份提供者)
  5. 此时 ACS 将使用一些 JavaScript 渲染一个 HTML 页面。这将指示浏览器(托管在您的 Windows Phone 中)发送带有有效负载(在本例中为令牌)的外部信号。 window.external.Notify('THE_TOKEN');
  6. 手机应用程序将检测到通知并获取令牌

我不确定 JavaScript 通知机制将如何在 Silverlight 浏览器内应用程序上工作,因为您已经在浏览器中。但是,如果您尝试这样做,请随时通知我们。

马蒂亚斯

于 2012-06-03T14:48:53.890 回答