1
我试图在aspnet样板文件中使用Identity实现忘记密码。在aspnet样板文件中实现忘记密码
- 我与个别用户身份验证Visual Studio创建一个新项目,实施和测试忘记密码的功能(项目名称:
IdentityProject
)。 - 然后我下载了abp项目并将
App_Start/AppIdentityConfig.cs
和IdentityModels
文件从IdentityProject
复制到ABPProject
。 - 写
Startup.cs
类此行Configuration
方法:app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
下面是我ApplicationUserManager
类IdentityConfig.cs
:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
public ApplicationUserManager(IUserStore<ApplicationUser> store)
: base(store)
{
}
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
// Configure validation logic for usernames
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
// Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
};
//removed some of the configuration code..
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null)
{
manager.UserTokenProvider =
new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
return manager;
}
}
在运行的应用程序,我对Create
方法的第一行越来越例外:
值不能为空。参数名:上下文
类型“System.ArgumentNullException”发生在 Microsoft.AspNet.Identity.EntityFramework.dll但尽管上下文参数有这个数据是不是在 用户代码
下面是ApplicationDbContext
类身份:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
下面是类的ABPProjectDBContext
:
public class HRISDbContext : AbpZeroDbContext<Tenant, Role, User>
{
public HRISDbContext()
: base("Default")
{
}
public HRISDbContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
}
//This constructor is used in tests
public HRISDbContext(DbConnection existingConnection)
: base(existingConnection, false)
{
}
public HRISDbContext(DbConnection existingConnection, bool contextOwnsConnection)
: base(existingConnection, contextOwnsConnection)
{
}
}
可能是什么这个异常的原因,以及如何解决这个问题?
请让我知道,如果我的问题不明确。 –