检查用户是否在Action(ASP.NET MVC)内获得授权

时间:2015-11-30 12:49:46

标签: asp.net-mvc asp.net-mvc-4

用户使用ajax在模态窗口中登录主页(它使用来自LogIn控制器的方法User

[HttpPost]
[AjaxAction]
public ActionResult LogIn(UserModel user)
{
    if (ModelState.IsValid)
    {
        if (IsValid(user.Email, user.Password))
        {
            FormsAuthentication.SetAuthCookie(user.Email, false);                 

            return Json(new { status = "OK", message = "Success" }, JsonRequestBehavior.AllowGet);
        }               
    }

    return Json(new { status = "ERROR", message = "Data is incorrect" }, JsonRequestBehavior.AllowGet);
}

如果登录成功,我会在Task/Index页面上重定向 我想添加Index控件的Home操作,如果用户已获得授权,则将其重定向到Task/Index,否则显示Index Home视图控制器。

我尝试过以下代码

public class HomeController : Controller
{

    public ActionResult Index()
    {
        if (User.Identity.IsAuthenticated)                
        {
            return Redirect("/Task/Index");

        }
        return View();

    }
}

但重定向无论如何都适用。如何解决?

1 个答案:

答案 0 :(得分:2)

public class HomeController : Controller
{
    public ActionResult Index()
    {
        if (Request.IsAuthenticated)                
        {
            return RedirectToAction("Index", "Task");
        }
        return View();
    }
}