无法使用用户存储创建实例



我刚刚使用UserStore定义了一个实例,如下所示。

var store = new UserStore<ApplicationUser>(new ProjectEntities());

但是得到以下错误

类型"project_name。Models.ApplicationUser' 不能用作类型 泛型类型或方法"用户存储"中的参数"TUser"。 没有隐式引用转换 "project_name。Models.ApplicationUser' to 'Microsoft.AspNet.Identity.EntityFramework.IdentityUser'.

这是我在IdentityModel.cs中如何定义ApplicationUser

public class ApplicationUser : IdentityUser<string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
    public ApplicationUser()
    {
    this.Id = Guid.NewGuid().ToString();
    }
    // custom User properties/code here
    public string Full_Name { get; set; }
    public string Gender { get; set; }
    public async Task<ClaimsIdentity>GenerateUserIdentityAsync(ApplicationUserManager manager)
    {
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        return userIdentity;
    }
}

我认为这个错误在你做错了什么方面非常清楚

您正在尝试传递ApplicationUser,但UserStore要求您使用您可能应该从Microsoft.AspNet.Identity.EntityFramework.IdentityUse扩展/继承应用程序用户Microsoft.AspNet.Identity.EntityFramework.IdentityUse的类型

类似的东西

public class ApplicationUser : IdentityUser

我不确定为什么你使用 IdentityUser<string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim> 而不是 COLD TOLD 指出的IdentityUser,因为该签名最常见的用途是使用 INT 键而不是字符串。使用IdentityUser,默认情况下你会得到字符串键。

因此,假设您有其他原因使用该签名,您将需要覆盖整个身份堆栈:IdentityUser,IdentityUserRole,IdentityRole,IdentityUserClaim,IdentityUserLogin,IdentityDbContext,UserStore和RoleStore。

所以用户商店将是:

public class ApplicationUserStore : 
    UserStore<ApplicationUser, ApplicationRole, int,
    ApplicationUserLogin, ApplicationUserRole, 
    ApplicationUserClaim>, IUserStore<ApplicationUser, int>, 
    IDisposable
{
    public ApplicationUserStore() : this(new IdentityDbContext())
    {
        base.DisposeContext = true;
    }
    public ApplicationUserStore(DbContext context)
        : base(context)
    {
    }
}

请参阅 http://johnatten.com/2014/07/13/asp-net-identity-2-0-extending-identity-models-and-using-integer-keys-instead-of-strings/

相关内容

  • 没有找到相关文章

最新更新