Я использую Visual Studio 2012 и пытался сделать как sugested, но отображается ошибка:
To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".
Итак, я обнаружил, что необходимо внести несколько изменений в форму входа по умолчанию на VS2012 с MVC 4 и структурой сущностей следующим образом:
в файле "AccountController.cs"
в «общедоступном логине ActionResult (модель LoginModel, строка returnUrl)»
Изменить
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
для
if (ModelState.IsValid && Membership.Provider.ValidateUser(model.UserName, model.Password))
в "public ActionResult LogOff ()"
Изменить
WebSecurity.Logout();
для
FormsAuthentication.SignOut();
и добавьте следующее: FormsAuthentication.SetAuthCookie (model.UserName, false);
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && Membership.Provider.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}