ASP Net Core - 将外部身份提供者与个人用户帐户混合以进行审计跟踪
ASP Net Core - Mixing External Identity Provider with Individual User Accounts for Audit Tracking
我已经创建了一个默认的 ASP Net Core MVC web 应用程序,其中包含个人用户帐户。我在 AspNetUsers table 中添加了一个自定义 UserID INT 字段,并将其 link 编辑为我所有其他自定义 table 的外键,这样我就可以跟踪用户 inserted/updated 的记录在我的数据库中。我这样做是因为我更喜欢使用 INT 字段作为主键。在这种情况下一切正常。
我现在正在考虑使用外部身份提供者,例如 Azure Active Directory,但是我不知道如何 link Azure AD(或任何其他身份提供者)中的用户到我的本地数据库 tables维护用户id外键约束。从我所有的研究中,我找不到任何关于这种情况的文章。
我如何 link 从外部身份提供商到我的本地数据库 table 的用户信息?我担心我可能需要在外部身份提供者和我的本地 AspNet 用户 tables 中双重处理用户帐户管理,以使用我的其他自定义 tables 维护外键,这看起来很疯狂。
也许我遗漏了一些明显的东西或者我的方法完全错误所以如果有更好的替代方法来跟踪谁在我的数据库中做了什么 tables 对于 ASP Net Core Web 应用程序使用外部身份提供商我很乐意采用它。
不需要额外的步骤link 从外部身份提供商获取用户的用户信息。 Web 应用程序看起来应该是一样的。
当用户从外部身份提供商登录时,仍然需要注册用户以将用户与个人帐户绑定。唯一不同的是,这种个人账户没有密码,可以匹配AspNetUserLogins
中的记录。这里有两个账户,一个绑定了外部身份提供者,另一个没有:
我已经创建了一个默认的 ASP Net Core MVC web 应用程序,其中包含个人用户帐户。我在 AspNetUsers table 中添加了一个自定义 UserID INT 字段,并将其 link 编辑为我所有其他自定义 table 的外键,这样我就可以跟踪用户 inserted/updated 的记录在我的数据库中。我这样做是因为我更喜欢使用 INT 字段作为主键。在这种情况下一切正常。
我现在正在考虑使用外部身份提供者,例如 Azure Active Directory,但是我不知道如何 link Azure AD(或任何其他身份提供者)中的用户到我的本地数据库 tables维护用户id外键约束。从我所有的研究中,我找不到任何关于这种情况的文章。
我如何 link 从外部身份提供商到我的本地数据库 table 的用户信息?我担心我可能需要在外部身份提供者和我的本地 AspNet 用户 tables 中双重处理用户帐户管理,以使用我的其他自定义 tables 维护外键,这看起来很疯狂。
也许我遗漏了一些明显的东西或者我的方法完全错误所以如果有更好的替代方法来跟踪谁在我的数据库中做了什么 tables 对于 ASP Net Core Web 应用程序使用外部身份提供商我很乐意采用它。
不需要额外的步骤link 从外部身份提供商获取用户的用户信息。 Web 应用程序看起来应该是一样的。
当用户从外部身份提供商登录时,仍然需要注册用户以将用户与个人帐户绑定。唯一不同的是,这种个人账户没有密码,可以匹配AspNetUserLogins
中的记录。这里有两个账户,一个绑定了外部身份提供者,另一个没有: