ASP.NET Identity–UserManager和UserStore存在非字符串用户ID问题



我成功地将我的代码库转换为一致的,并使用long作为每个模型的ID,包括我的User:IdentityUser<long>。一切似乎都在运转。

也就是说,直到我需要用_userManager.GetUserAsync(User)获取当前登录的用户,并陷入了到处都是硬编码string的兔子洞。由于泛型,我最初切换到long的过程中有很大一部分变得更容易了,但它们在UserManagerUserStore中似乎是一个外来概念。

到目前为止,我找到的唯一解决方案是Stack Overflow 2013年的答案,这些答案要么非常过时,要么非常过时。这需要我复制粘贴一半的Identity,并用long替换所有string,然后对它们进行硬编码。

必须有更好、更干净的方法,但我看不到。


这一切都是从这里开始的,这把我带到了这里,来到了这里,最终来到了这里。

发现问题出在代码的其他地方,即其中一个模型没有更新为将用户ID存储为long,并且具有string属性。改变这一点,解决了问题,UserManagerIUserStore都能正常工作。

最新更新