0

现在,当用户通过身份验证(通过为 SWT 令牌启用 WIF 的 Azure ACS)时,看起来我不能让他们使用新的提供程序再次登录并获得两个令牌。

我正在寻找一种可以让用户将两个帐户链接在一起的模式?

4

2 回答 2

0

你需要多解释一点。这是一个网站吗?(假设是,因为您将问题标记为“MVC”)。您正在使用哪些提供商?(例如 FB、LiveID、Google、您自己的)。您的应用如何识别用户?(例如,唯一的句柄、电子邮件地址等)。

您获得的令牌始终来自 ACS,并且独立于提供商。您实际上可以使用 ACS 将来自所有不同提供商的信息标准化为通用信息。从而“链接”了他们两个。您可以使用 ACS 转换规则执行此操作。

如果您使用“直通”规则,那么您将获得 IdP 给您的任何信息,并且关联必须在应用程序中发生。

于 2012-09-29T20:33:17.167 回答
0

根据Identity Providers,您会为每个提供者获得一个唯一的“名称标识符”。您必须通过将它们存储在存储库中来手动将它们链接在一起。

例如

  • 用户通过 Facebook 登录。存储标识符。
  • 询问用户是否要使用其他提供商。
  • 用户通过 Google 登录。将标识符链接到 Facebook 的标识符。

更新:

您需要有一个“控制”身份,例如普通的 SQL 成员资格提供程序。所以首先他们以这个身份登录。然后你有一个工作流程询问“你想使用另一个身份吗?” 您知道他们的控制身份,因此您将新的“名称标识符”映射到控制身份。如果他们使用 ACS 身份之一登录,您将搜索您的存储库。如果你没有找到它。你说“我们以前没有见过这个身份。请以你的控件登录,然后映射它”。

于 2012-09-30T02:01:52.143 回答