ASP .NET MVC3应用程序使用下面的MVC3应用程序模板中的登录控制器。控制器由[Authorize]属性修饰:
[Authorize]
public class CheckoutController : ControllerBase
用户输入用户名和密码,然后点击"记住我"复选框。授权cookie存储在浏览器中,后续访问时不再询问凭据。
可以通过在帐户数据库中设置已禁用的字段来禁用用户。 如果此类用户尝试登录成员资格提供程序返回错误并且登录失败。
但是,如果用户已登录,则不会调用成员资格提供程序。已禁用的用户可以继续使用应用程序 如何解决这个问题,以便禁用的用户无法使用应用程序?
LogOn控制器基本上来自Visual Studio MVC3示例应用程序模板:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrWhiteSpace(model.Password))
{
ModelState.AddModelError("", "User or password not filled");
return View(model);
}
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl))
return Redirect(returnUrl);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Logon error");
}
return View(model);
}