大家好我正在开展一个项目,我们可以禁用我们的用户。用户表中有一个列名称状态,可以是true或false。现在我想在默认的asp.net用户登录中添加一个新规则,如果用户被禁用(他的列名称状态等于false),则无法使用“管理员已禁用您的帐户”的错误消息登录# 34。
我已经查看了,
ManageController.cs
IdentityConfig.cs
ManageViewModles.cs
IdentityModel.cs
但我没有得到任何线索。如何在我的asp.net MVC-5应用程序中添加此规则
答案 0 :(得分:0)
您可以在登录视图控制器中使用异步功能定义验证,然后在登录按钮上调用它。
开始的好地方:here
修改强>
这里有一些您可以在HomeController-> Index Action中使用的代码示例。请注意,这不是异步,但您可以使用db调用实现异步操作:
[HttpGet]
public ActionResult Index()
{
//Verification of user
//if true
return View();
//else false
return ErrorView(); //View that contains the error message
}
答案 1 :(得分:0)
在帐户控制器的登录方法中,我使用此代码实现了它。
我更新了SignInStatus.Success案例的开关(结果)中的代码:
案例SignInStatus.Success:
var userID = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId();
AspNetUser res = db.AspNetUsers.Where(x => x.Id == userID).Select(x => x).FirstOrDefault();
if (res.Status == "False")
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
// return RedirectToAction("Index", "Home");
ModelState.AddModelError("", "Admin has disabled your account.");
return View(model);
}
//remaining code here