更改用户的密钥
本文关键字:密钥 用户 | 更新日期: 2023-09-27 18:31:26
我目前正在使用一个用 ASP.NET 和C#开发的网站。我正在使用 EF6,需要将默认表更改为我自己的自定义表。我已经设法做到了一个问题。在我的自定义表中,UserId
是int
而不是默认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>