2016-02-21 5 views
-1

Я использую приложение mvc3, где после нажатия кнопки входа я проверяю, что пользователь проверен или не использует вызов ajax в jquery. Если пользователь аутентифицирован, я возвращаю true и в методе Onsuccess перенаправляю его на домашнюю страницу. Ниже приведен код:показать кнопку выхода после успешного входа

function OnSuccess(response) { 
 
    var mesg = $("#lblMess")[0]; 
 
    
 
    switch (response) { 
 
     case true: 
 
      var url = "/Home/Search"; 
 
      takeToHomePage(url); 
 
      $(location).attr('href', url); 
 
      
 
      break; 
 
     case false: 
 
      mesg.style.color = "red"; 
 
      mesg.innerHTML = "Email id or Password is incorrect"; 
 
      break; 
 
     case "error": 
 
      mesg.style.color = "red"; 
 
      mesg.innerHTML = "Error occured"; 
 
      break; 
 
    } 
 
}

До здесь работает нормально. Теперь я добавил одну кнопку выписки на странице _layout.cshtml, на которой я сделал видимость ни на странице входа, поэтому, если я покажу эту кнопку выключения до начала запуска, а пользователь недействителен, появится кнопка вывешивания, но если пользователь аутентифицирован и пытается показать кнопку выписки внутри истинного случая, тогда он не работает. Нужна помощь.

+0

Почему вы используете Ajax, если намерение состоит в том, чтобы перенаправить. Это бессмысленно. Просто выполните обычную передачу и перенаправление. –

+0

Используете ли вы проверку подлинности на основе форм? –

+0

да Редди, это проверка подлинности форм – Vikash

ответ

0

Теперь я добавил одну кнопки SignOut в _layout.cshtml странице, которые я не сделал видимость ни в странице входа, так что если я показать эту кнопку SignOut до того начинаются переключения и пользователь не является действительным, то SignOut кнопки отображает, но если пользователь аутентифицирован и пытается показать кнопку выключения внутри true , тогда он не работает.

Сделать вызов Ajax на сервер, чтобы проверить, не аутентифицирован ли пользователь. И затем вы можете переключать показ кнопки и скрывать. This is not the best method to do it. But talking about good approach would be to create a custom CustomPrincipal by inheriting ICustomPrincipal and may more changes. который, я думаю, будет слишком для вас, если вы только что начали с MVC.

Это решение предназначено только для переключения видимости кнопки выхода, и я не предлагаю это как наилучшую практику.

$.get("User/CheckUserAuthenticity",function(response){ 
    if(response == "true") 
     { 
     //button show; 
     } 
    }); 

ваш контроллер Действие может быть

public ActionResult CheckUserAuthenticity() 
    { 
     return Json(User.Identity.IsAuthenticated,JsonRequestBehavior.AllowGet); 
    } 
+0

Здесь добавленное сообщение в последнем случае, если пользователь аутентифицирован, а затем в истинном случае, я пытаюсь скрыть кнопку входа и показать кнопку выписки, но этого не происходит, она все еще показывает кнопку входа в систему. – Vikash

+0

Какой код вы используете, чтобы скрыть и показать кнопки. –

+0

signin button id = $ ("# signin"). Css ("display", "none"); Кнопка SignOut id = $ ("# signout"). Css ("display", "block"); это нормально работает, я использую этот код перед запуском true и false case (только внутри коммутатора), но когда я использую этот код в истинном случае, он не работает. – Vikash

Смежные вопросы