.NET core 中是否存在`UserManager<TUser, TKey>`?

问题描述 投票:0回答:1

我曾经使用 ASP NET Identity 开发 ASP.NET 网站。使用它,我有了这个 UserManager:

UserManager<TUser, TKey>
。这样,我可以将
TKey
用作
int
,因为我的数据库表使用
int
身份字段。所以,我可以做这样的事情:
_userManager.FindByIdAsync(1);
。该指令返回身份为 1 的用户。

使用 .NET Core,我可以这样创建自己的

ApplicationUser

public class ApplicationUser : IdentityUser<int>
{
    public string? FirstName { get; set; }
    public string? LastName { get; set; }
    public DateTime? FirstLoggedOn { get; set; }
    public DateTime? LastLoggedOn { get; set; }
}

所以我告诉系统关键字段是一个整数。

我怎样才能对

UserManager
做同样的事情,这样我就不需要在这样的调用中将身份转换为字符串:
_userManager.FindByIdAsync

我在 .NET Core 中能找到的唯一

UserManager
是:
UserManager<TUser> : IDisposable where TUser : class

问候 詹姆

c# asp.net-core-identity
1个回答
1
投票

我想你可以检查一下这两个文件:

https://learn.microsoft.com/en-us/previous-versions/aspnet/dn613290(v=vs.108)#inheritance-hierarchy

https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.usermanager-1?view=aspnetcore-6.0

.NET框架中的继承层次结构:

System.Object
  → Microsoft.AspNet.Identity.UserManager<TUser, TKey>
    → Microsoft.AspNet.Identity.UserManager<TUser>

.NET 6 中的继承层次结构:

Object →  UserManager<TUser> →  AspNetUserManager<TUser>

.NET 6 中不再有

UserManager<TUser, TKey>

你也可以按F12,然后进入

UserManager<TUser>
类查看方法。

它只接受字符串类型的参数,并且

AspNetUserManager<TUser>

中没有重写方法

默认情况下

IdentityUser
定义如下:

© www.soinside.com 2019 - 2024. All rights reserved.