到目前为止,我将所有类型转换为使用 Guid(例如)没有问题:
public class UserLogin : IdentityUserLogin<Guid> { ... }
public class UserRole : IdentityUserRole<Guid> { ... }
public class UserClaim : IdentityUserClaim<Guid> { ... }
public class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>
{
...
}
public class UserManager : UserManager<User, Guid> { ... }
深入了解Microsoft.AspNet.Identity.UserManager
:
public class UserManager<TUser, TKey> : IDisposable
where TUser : class, Microsoft.AspNet.Identity.IUser<TKey>
where TKey : System.IEquatable<TKey>
{ ... }
显然,TKey
它是通用的,所以它允许Guid
.
接下来是角色管理器:
public class RoleManager : RoleManager<Role>
{
}
但是 的定义Microsoft.AspNet.Identity.RoleManager
:
public class RoleManager<TRole> : RoleManager<TRole, string>
where TRole : class, Microsoft.AspNet.Identity.IRole<string>
{
}
似乎只有在角色的关键是 时才有效string
。这是一个错误还是我错过了什么?