par*_*ent 5 asp.net authentication oauth claims-based-identity asp.net-identity
我最近开始使用OAuth在单页应用上实现身份验证.我使用新的身份验证系统开始使用ASP.NET单页面应用程序Visual Studio模板.
我不得不重写这个应用程序的整个前端,并且已经慢慢开始使用模板生成的AccountController端点来了解身份验证流程.我是基于声明的身份的新手,所以它有点像第一次,但我一直在慢慢消化它.
但是,似乎不支持将多个外部帐户与单个本地帐户链接合并.更熟悉新系统的人可以评论如何为此建立支持.这将有助于使用该系统的当前自己的域名语言(IdentityUser
,IdentityUserLogin
,ExternalLoginData
等)来解释如何处理3流在这个答案说明
换句话说,我正在寻找那些用更多细节重写的答案,并且与ASP.NET身份验证系统使用的域模型相关.
因此,为了将链接的答案映射到身份:
IdentityUser 是本地用户(UserId 是本地用户的键) IdentityUserLogin 是将本地用户链接到第三方登录(oauth/open id)的行。ExternalLoginData 只是应用程序层使用的容器类。
通常注册发生在本地(创建用户名/密码)或外部(将新帐户链接到第三方登录)。
这两个流程首先创建一个 IdentityUser。本地密码流不需要 IdentityUserLogin,因为密码哈希存储在 IdentityUser 本身内部。3rd 方流程需要额外的步骤来创建 IdentityUserLogin,并使用与 IdentityUser 的 userId 关联的适当的第三方标识符,以便将来使用 3rd 方登录进行登录。