我有一个带有ASP.NET Identity(个人账户)的ASP.NET MVC 5 Web应用程序。但我需要能够从控制台应用程序注册新用户。
因此,我正在将一些ASP.NET Identity类从Web应用程序移动到共享Web应用程序和CLI之间的类库中。
我已成功地移动了以下内容:
因此,我正在将一些ASP.NET Identity类从Web应用程序移动到共享Web应用程序和CLI之间的类库中。
我已成功地移动了以下内容:
public class PortalDbContext : IdentityDbContext<PortalUser>
{
public PortalDbContext(string connectionString)
: base(connectionString, throwIfV1Schema: false)
{
}
public static PortalDbContext Create(string connectionString)
{
return new PortalDbContext(connectionString);
}
}
public class PortalUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<PortalUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class PortalUserManager : UserManager<PortalUser>
{
public PortalUserManager(IUserStore<PortalUser> store) : base(store)
{
}
public async Task<IdentityResult> RegisterUser(string email, string password)
{
PortalUser user = new PortalUser { UserName = email, Email = email };
return await this.CreateAsync(user, password);
}
}
但是我不知道从哪里获取 IUserStore<PortalUser>
,PortalUserManager
需要它来工作。
在 Web 应用程序中,可以通过 HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>()
获取此管理器,但在类库中显然无法使用。
UserStore
。 - empz