c# - 无法修改 MVC 4 内置登录 Controller

标签 c# asp.net-mvc asp.net-mvc-4

我正在使用 mvc4 应用程序内置帐户注册和登录 Controller (及其各自的模型)。我有自己的删除帐户的方法。因此,我想在标准登录 Controller 中进行检查,以便它检查我是否自己删除了帐户,然后将用户重定向到信息页面。

但是,当 Controller 被调用时,它只是传递我的代码行并仍然让用户登录。我已经检查了数据库。用户将其 IsActive(将帐户列为“事件”和“非事件”)值设置为 0,并且应该被重定向。但他只是登录就像我的代码行不存在一样...

这是 Controller 中的代码:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
 if (WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");    //my redirect code

 if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
         {
                    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);
}

我的 DAL 类的代码:

public static bool IsActive(string _username)
{  TimeTrackerEntities db = new TimeTrackerEntities();
   foreach (Worker worker in db.Workers)
   {
       if (worker.UserName == _username)
       {
             if (worker.IsActive == 1) return true;
             if (worker.IsActive == 0) return false;
       }
   }
return true;
}

我是否对用户使用了错误的重定向操作?或者类似这样明显的事情?我基本上迷路了...

编辑 - 感谢 Eric J. 和 Jonathon Page,代码现在可以工作了。谢谢你们俩! 我怎样才能将他们的评论记为正确答案?

最佳答案

我假设这一行:

if (WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");

应该阅读

if (!WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");

如果用户处于事件状态,您当前正在重定向以显示已删除的用户消息。

关于c# - 无法修改 MVC 4 内置登录 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14917418/

相关文章:

c# - 我如何开始使用 SharpSVN?

javascript - 通过 jQuery Controller 打开另一个 View ?

c# - iTextSharp 输入字符串格式不正确 css 错误

c# - 如何解决Azure中NHibernate缓存的 "This operation is not supported by the cache."问题?

c# - 更新 SSL 设置后无法通过 SMTP 发送电子邮件

c# - P/Invoke CryptUnprotectData 中断 SqlConnection 构造函数

c# - 无法读取配置部分 'system.web.webPages.razor',因为它缺少部分声明

asp.net-mvc - 上帝 Controller - 如何防止它们?

c# - Kendo UI 小部件的完整本地化

asp.net - 如何使用 ASP.NET MVC 进行异步/等待视频流?