2015-11-30 187 views
0

Там находится пользователь войти на домашней странице в модальном окне с помощью Ajax (он использует метод LogIn от User Controller)Проверьте пользователь авторизован в действии (ASP.NET MVC)

[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(); 

    } 
} 

но перенаправлять работы в любом случае. Как это исправить?

+0

Когда вы говорите, что перенаправление работает в любом случае, значит, свойство IsAuthenticated всегда верно, даже если это совершенно новый сеанс? –

+0

Если User.Identity.IsAuthenticated истинно, значит, ваш пользователь вошел в систему, вам нужно выйти из системы –

ответ

2
public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     if (Request.IsAuthenticated)     
     { 
      return RedirectToAction("Index", "Task"); 
     } 
     return View(); 
    } 
} 
Смежные вопросы