gpt4 book ai didi

ASP.NET Identity - IUser 接口(interface)中的 UserName 和 Id 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 15:12:48 25 4
gpt4 key购买 nike

我们正在开发一个使用 ASP.NET Identity(v 1.0)的应用程序。我们定义了一个实现 IUser 接口(interface)的 User 类。我们的存储库类 UserRepository 实现 IUserStore

现在,当我调用 UserManager.CreateAsync(user, password) 时,它会调用 UserRepositoryFindByNameAsync() 方法进行检查(我猜)如果这个新用户有一个唯一的 ID。

但是我不明白为什么它调用此方法而不是 FindByIdAsync

我认为 IUser 接口(interface)上的 UserName 属性类似于人名(例如“John Smith”),而 Id 是一个用户的内部唯一标识符。

从这个默认实现来看,我想我错了。

问题是:在这种情况下,为什么我们在 IUser 接口(interface)上需要这两个属性(IdUserName)?他们之间有什么区别?其中哪一个应该是唯一 ID?

最佳答案

ID 通常是数字,尽管 Identity 的默认实现使用 Guid。名称是用户名,通常是全名的句柄或缩写。通常这是一个电子邮件地址,取决于您如何设置。

Id 用作数据库中的主键。名字不是。原因是您可能会删除具有给定用户名的用户,而另一个用户可能会出现并想要创建具有相同名称的帐户。但是,出于审计和历史原因,您仍然需要一种方法来识别这是两个不同的用户。

创建用户时,代码究竟如何知道用户 ID 来查找它?用户名是它唯一知道的东西......

关于ASP.NET Identity - IUser 接口(interface)中的 UserName 和 Id 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com