现在,当用户通过身份验证(通过为 SWT 令牌启用 WIF 的 Azure ACS)时,看起来我不能让他们使用新的提供程序再次登录并获得两个令牌。
我正在寻找一种可以让用户将两个帐户链接在一起的模式?
现在,当用户通过身份验证(通过为 SWT 令牌启用 WIF 的 Azure ACS)时,看起来我不能让他们使用新的提供程序再次登录并获得两个令牌。
我正在寻找一种可以让用户将两个帐户链接在一起的模式?
你需要多解释一点。这是一个网站吗?(假设是,因为您将问题标记为“MVC”)。您正在使用哪些提供商?(例如 FB、LiveID、Google、您自己的)。您的应用如何识别用户?(例如,唯一的句柄、电子邮件地址等)。
您获得的令牌始终来自 ACS,并且独立于提供商。您实际上可以使用 ACS 将来自所有不同提供商的信息标准化为通用信息。从而“链接”了他们两个。您可以使用 ACS 转换规则执行此操作。
如果您使用“直通”规则,那么您将获得 IdP 给您的任何信息,并且关联必须在应用程序中发生。
根据Identity Providers,您会为每个提供者获得一个唯一的“名称标识符”。您必须通过将它们存储在存储库中来手动将它们链接在一起。
例如
更新:
您需要有一个“控制”身份,例如普通的 SQL 成员资格提供程序。所以首先他们以这个身份登录。然后你有一个工作流程询问“你想使用另一个身份吗?” 您知道他们的控制身份,因此您将新的“名称标识符”映射到控制身份。如果他们使用 ACS 身份之一登录,您将搜索您的存储库。如果你没有找到它。你说“我们以前没有见过这个身份。请以你的控件登录,然后映射它”。