在将 .NET 4.5 框架与 Azure 访问控制服务 (ACS) 结合使用的 ASP.NET MVC 4 应用程序中,我想为用户提供多种身份验证可能性(即 Google、Facebook、Windows Live 等)。将单个用户关联到多个身份提供者的“最佳实践”是什么?
例如,假设用户一天使用 Google 登录,然后第二天转到另一个浏览器并使用 Facebook 登录。我怎么知道将 Facebook 登录与之前的 Google 登录关联到同一用户?
最佳答案
看看 stackoverflow 本身就是一个很好的例子。单击您的用户配置文件,然后选择“我的登录”。
当用户创建他们的帐户时,他们会选择您想使用哪个身份提供者登录。在后台,您的应用程序会创建一个新的特定于站点的唯一用户 ID,并将其与 3rd 方提供的唯一 ID 相关联。 (您可能会使用电子邮件,但大多数身份提供商还会提供一个不会更改的唯一用户 ID 声明,即使用户更改了他们的电子邮件)
现在,在用户登录后,他们有一个帐户管理控制面板,通过它他们可以建立到其他身份提供者的附加链接。
我看到了实现这一目标的两种选择:
对于唯一 ID 输出声明类型,您可以从可用声明类型中进行选择或指定您自己的声明类型。 ACS 有一个 OData based management service您可以使用它从您的 MVC 应用程序以编程方式创建这些规则。这是一个 code sample .
关于asp.net-mvc-4 - 使用 ASP.NET 将多个基于声明的身份提供者关联到一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077271/