我只是将用Mvc编写的现有项目转换为Core,并且在这里停留了很多天 因为无法弄清楚如何将此方法用作依赖项并注入控制器中?相反,我正在调用与static相同的方法,但现在无法设置TokenProvider。
private ApplicationUserManager getUserManager()
{
var manager = new ApplicationUserManager(new MySqlUserStore<ApplicationUser>());
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
};
// Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 2,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false
};
// Configure user lockout defaults
manager.UserLockoutEnabledByDefault = true;
manager.DefaultAccountLockoutTimeSpan = System.TimeSpan.FromMinutes(50);
manager.MaxFailedAccessAttemptsBeforeLockout = 5;
// Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user
// You can write your own provider and plug it in here.
manager.RegisterTwoFactorProvider("Phone Code", new PhoneNumberTokenProvider<ApplicationUser>
{
MessageFormat = "Your security code is {0}"
});
manager.RegisterTwoFactorProvider("Email Code", new EmailTokenProvider<ApplicationUser>
{
Subject = "Security Code",
BodyFormat = "Your security code is {0}"
});
manager.EmailService = new EmailService();
manager.SmsService = new SmsService();
//var dataProtectionProvider = options.DataProtectionProvider;
//if (dataProtectionProvider != null)
//{
// manager.UserTokenProvider =
// new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
//}
return manager;
}
如何设置这些行?
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null)
{
manager.UserTokenProvider =
new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
在generateTokenForpassword抛出时没有这个
This,请帮助