2010-11-09 21 views
3

J'utilise ASP.NET Forms Authentication d'une manière simple. L'authentification utilise un cookie pour stocker les informations d'identification.Authentification de formulaires ASP.NET avec le navigateur Android

fonctionne parfaitement dans les navigateurs comme: Desktop: Chrome, Safari, IE, ... Mobile: Navigateur iPhone, Opera Mobile ...

je presse l'authentification du formulaire de bouton et rediriger vers la page d'application . MAIS, dans le navigateur Android, j'appuie sur le bouton et rien.

La configuration de l'authentification par formulaire ASP.NET est simple:

<authentication mode="Forms"> 
<forms loginUrl="MLogin.aspx" 
    timeout="30" 
    name=".MOBAUTH" 
    path="/" 
    defaultUrl="Main.aspx" 
    cookieless="AutoDetect"> 
    <credentials passwordFormat="Clear"> 
    <user name="dev" password="123456"/> 
    </credentials> 
</forms> 
</authentication> 
<authorization> 
<deny users="?" /> 
</authorization> 

Quelqu'un at-il une idée de ce que pourrait se produire?

... Complétant

MLogin.aspx utiliser une méthode simple pour authentifier l'utilisateur:

private void authenticate() 
{ 
    if (FormsAuthentication.Authenticate("dev", this.txtPass.Text.Trim())) 
     FormsAuthentication.RedirectFromLoginPage("dev", true); 

    Response.End(); 
} 
+1

est MLogin.aspx en utilisant logincontrol standard? tout ce que vous avez ici est la configuration, qu'en est-il de la page elle-même? – Artemiy

Répondre

1

La raison est le Response.End(). Cette fonction tue prématurément votre flux de données. Il n'y a pas besoin du tout.

Différents navigateurs gèrent le Response.End() de différentes manières. Certains rendront la page même si vous avez terminé le flux, et certains ne le rendront pas.

0

Cochez le paramètre "expires" dans le champ d'en-tête Set-Cookie de la réponse, et assurez-vous que votre téléphone est réglé sur l'heure correcte & date. Si le navigateur pense que le cookie a déjà dépassé sa date d'expiration, il ne le stockera pas.