【发布时间】:2013-12-31 00:05:35
【问题描述】:
我已经实现了我自己的自定义 MembershipProvider,在 web.config 中对其进行了配置,并且我的初始化方法被成功调用,即使它只包含:
public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
}
我还实现了所有其他标准方法,例如:
public override bool ChangePassword(string username, string oldPassword, string newPassword)
和
public override bool ValidateUser(string username, string password)
我对编写自定义 MembershipProvider 的好处的理解是,一旦您实现了接口并对其进行了初始化,标准 MVC 5 网站会在适当的时间自动调用适当的方法。 IE。当用户登录或注册等时。但是除了 Initialize() 之外,我的方法都没有被调用...
我是否需要通过标准 AccountController.cs 并更改其中的所有方法以强制它调用我的自定义 MembershipProvider?
例如这是标准的 Login() 方法:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.Email, model.Password);
if (user != null)
{
await SignInAsync(user, model.RememberMe);
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
我是否必须修改它以确保它调用我的东西?
或者我错过了什么?
谢谢。
【问题讨论】:
标签: membership-provider asp.net-mvc-5 custom-membershipprovider