在ASP.NET身份验证系统中合并OAuth帐户

时间:2014-02-02 23:59:21

标签: asp.net authentication oauth claims-based-identity asp.net-identity

我最近开始使用OAuth在单页应用上实施身份验证。我使用新的身份验证系统开始使用ASP.NET单页面应用程序Visual Studio模板。

我不得不重写这个应用程序的整个前端,并且已经慢慢开始使用模板生成的AccountController端点来了解身份验证流程。我是基于声明的身份的新手,所以它有点像第一个,但我一直在慢慢消化它。

但是,似乎不支持将多个外部帐户与指向单个本地帐户的链接合并。更熟悉新系统的人可以评论如何为此建立支持。使用系统当前自己的域语言(IdentityUserIdentityUserLoginExternalLoginData等)来解释如何处理3个流described in this answer

会有所帮助

换句话说,我正在寻找那些用更多细节重写的答案,并且与ASP.NET身份验证系统使用的域模型相关。

1 个答案:

答案 0 :(得分:1)

因此,为了将链接的答案映射到身份:

IdentityUser是本地用户(UserId是本地用户的密钥) IdentityUserLogin是将本地用户链接到第三方登录的行(oauth / open id) ExternalLoginData只是应用层使用的容器类。

通常,注册发生在本地(创建用户名/密码)或外部(将新帐户链接到第三方登录)。

这两个流程首先创建一个IdentityUser。本地密码流不需要IdentityUserLogin,因为密码哈希存储在IdentityUser本身内部。第三方流程需要额外的步骤,创建一个IdentityUserLogin,其中包含与IdentityUser的userId相关联的相应第三方标识符,以便将来登录第三方登录工作。

相关问题