更改用户的密钥

本文关键字:密钥 用户 | 更新日期: 2023-09-27 18:31:26

我目前正在使用一个用 ASP.NET 和C#开发的网站。我正在使用 EF6,需要将默认表更改为我自己的自定义表。我已经设法做到了一个问题。在我的自定义表中,UserIdint而不是默认nvarchar(128)。我正在关注这个演示,但我在第一行不断收到错误。

public class ApplicationUser : IdentityUser<int, CustomLogin>
{
}

错误是:"非泛型类型 Microsoft.AspNet.Identity.EntityFramework.IdentityUser"不能与类型参数一起使用。

我做了一些研究,发现了这篇文章。我已经更新了所有核心库,但错误仍然存在。以前有没有人遇到过这个问题,或者我是幸运的那个?提前感谢您的帮助

更改用户的密钥

ASP.NET 附带了两个 IdentityUser 类。一个声明为:

public class IdentityUser : IdentityUser<string, 
        IdentityUserLogin, 
        IdentityUserRole, 
        IdentityUserClaim>, IUser

另一个是:

public class IdentityUser<TKey, TLogin, TRole, TClaim> : IUser<TKey>
        where TLogin : IdentityUserLogin<TKey>
        where TRole : IdentityUserRole<TKey>
        where TClaim : IdentityUserClaim<TKey>
您将声明泛型类型

类的子类型,并且声明中需要所有四种泛型类型。你还需要继承IdentityUserRole<int>IdentityUserClaim<int>的类,以及你的CustomLogin类,我认为它是IdentityUserLogin<int>的衍生物。

根据命名约定,您应该将类声明为

public class ApplicationUser : IdentityUser<int, CustomLogin, CustomRole, CustomClaim>