如何将ASP.NET中默认成员身份提供程序的用户名同步到我的其他数据库

本文关键字:用户 程序 同步 数据库 其他 我的 ASP NET 身份 成员 默认 | 更新日期: 2023-09-27 18:20:15

我真的不确定如何处理这个问题。

我认为我需要的是让人们注册的用户名(通过默认提供程序)复制到我的另一个数据库的UserName列,该数据库有一个连接表,用于UserBadge之间的多对多关系。

我已经尝试过使用SQL来复制表,但这并没有真正奏效,因为我不知道应该复制什么表。。

任何帮助都将不胜感激,如果需要更多信息,请询问!

如何将ASP.NET中默认成员身份提供程序的用户名同步到我的其他数据库

我不确定您的情况,但正如您所说的,用户是通过默认的Provider注册的,我想这些表可能是由aspnet_regiis工具生成的?

如果是,则用户存储在名为aspnet_Users的表中,用户名存储在列UserName中。

我可能误解了你的问题,但这是你想要的吗?

这实际上取决于您的需求,这些需求并不明确。如果你总是希望你的数据在另一个数据库中是最新的,那么通过复制整个表来同步不是一种方法。

如果你不介意在晚些时候获得用户名,那么同步就是你的选择。例如,如果您仅将其他数据库用于BI目的,那么一项简单的工作(例如在夜间)就可以了。正如Christoffer所说,您需要aspnet_User表中的UserName列。

现在,如果你想让它始终是最新的,那么你有两个选择:

  1. 我不建议使用Hacky和。通过更新其他数据库来扩展默认成员资格提供商调用的存储进程。例如,您可以更改dbo.aspnet_Membership_CreateUser。请检查数据库中的所有aspnet成员身份存储过程。

  2. 实现您自己的成员资格提供程序,该提供程序调用您自己的存储过程或默认存储过程+用于更新其他数据库的附加查询。这是最多的工作,将是我的选择。有关自定义实现的示例,请参阅此和此。

这两个选项都需要您熟悉asp.net成员基础设施。