9

Ho problemi con Chrome su iPad/iPhone con quello che pensavo fosse un'attività abbastanza semplice e funzioni su Chrome Desktop (Mac & PC) e Safari su iPad/iPhone.iPad/iPhone Chrome - Auth cookie non impostato su jquery post (ajax) - MVC 3

ho il seguente jquery sulla mia pagina:..

$ ("# login-login-button") clicca (function() { var username = $ ("# Username") val() .; var password = $ ("# Password") val();

$("#login-loading-icon").show(); 

    $.post("/login", { username: username, password: password }, function (data, response) { 
     if (response == "success") { 
      if (data.IsValid) { 
       window.location.href = "/profile"; 
      } 
      else { 
       $("#login-error-message").html(data.ErrorMessage); 
       $("#login-loading-icon").hide(); 
      } 
     } 
     else { 
      alert("An error occurred, please try again."); 
     } 
    }); 
}); 

e l'azione di controllo è il codice seguente aspetto:

[HttpPost] 
public JsonResult Index(string username, string password) 
{ 
     AjaxResponseModel ajaxResponseModel = new AjaxResponseModel(); 

     User user = UserDAL.Select(username, Hash.MD5(password)); 

     if (user != null) 
     { 
      if (!user.IsVerified.Value) 
      { 
       ajaxResponseModel.AddErrorMessage("Account not verified."); 
      } 
      else if (!user.IsActive.Value) 
      { 
       ajaxResponseModel.AddErrorMessage("Your account is not active."); 
      } 
      else 
      { 
       FormsAuthentication.SetAuthCookie(username, false); 
      } 
     } 
     else 
     { 
      ajaxResponseModel.AddErrorMessage("Login details incorrect."); 
     } 

     return Json(ajaxResponseModel); 
    } 

ho provato a installare l'Auth Cookie via un re non-ajax ricerca ma non funziona neanche.

E ho scoperto che sull'iPad/iPhone se utilizzo il "Richiedi sito desktop" nel menu di Chrome il problema scompare, tuttavia non vi è alcun concetto di mobile/desktop sul mio sito a questo punto, ovvero cosa Chrome ottiene la prima volta dovrebbe essere il sito desktop ...

+1

Da allora ho scoperto che si tratta di un bug in .Net e dovrebbe essere risolto nella versione 4.5, tuttavia la soluzione di @Froyke è ancora una soluzione rapida e semplice. – Rob

risposta

6

era già ansewerd qui: Asp.Net Forms Authentication when using iPhone UIWebView

ho usato la configurazione di default, che è più ragionevole data distribuzione browser attuali.

<browsers> 
    <browser refID="Default"> 
    <capabilities> 
     <capability name="cookies" value="true" /> 
    </capabilities> 
    </browser> 
</browsers> 
+0

Grazie a @Froyke è perfetto! – Rob

Problemi correlati