2015-08-28 1 views
1

Я внедрил FormsAuthentication в приложение MVC4.FormsAuthentication in MVC 4: После аутентификации пользователя страница входа не открывается

<authentication mode="Forms"> 
    <forms loginUrl="~/Home/Index" timeout="1" /> 
</authentication> 

private void SetupFormsAuthTicket(string userName, bool persistanceFlag) 
     { 
      FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, 
            userName, 
            DateTime.Now, 
            DateTime.Now.AddMinutes(1), 
            persistanceFlag, "" 
            ); 

      string encTicket = FormsAuthentication.Encrypt(authTicket); 
      this.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); 
     } 

Кроме того, я могу изменить timeout в случае система бездействует, страница будет перенаправлять на страницу входа в систему.

Теперь мне нужно, чтобы, если пользователь успешно вошел в систему, тогда страница Login не должна открываться, если пользователь вводит URL-адрес входа в браузер.

Как достичь того же?

+0

Вы предоставили по умолчанию 'controller' и' action' в 'RouteConfig.cs'? – Akshay

ответ

0

В верхней части страницы входа в систему, добавьте следующий код бритвы:

@if (Request.IsAuthenticated) 
{ 
    Response.Redirect(Url.Action("Index", "Home")); 
} 

Заменить Index и Home с действием/контроллера по вашему выбору. Это приведет к перенаправлению страницы, если пользователь аутентифицирован.