首页 文章

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

提问于
浏览
5

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

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

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

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

1 回答

  • 1

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

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

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

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

相关问题