【发布时间】:2018-08-10 19:55:35
【问题描述】:
我有一个带有 ASP.NET 身份(个人帐户)的 ASP.NET MVC 5 Web 应用程序。但我需要能够从控制台应用注册新用户。
所以我将一些 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 的需求。
在网络应用程序中,这个管理器是从 HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>() 检索到的,我显然不能在类库中使用它。
【问题讨论】:
标签: c# asp.net asp.net-identity asp.net-identity-2