2010-05-31 4 views
0

J'ai deux webapps .. qui partagent des tables d'adhésion ASP.Net.Rendre le cas de mot de passe insensible dans les tables d'adhésion ASP.Net partagées web ap

Tout fonctionne bien, sauf que je ne peux pas supprimer la sensibilité à la casse dans l'une des applications de la façon dont je le fais dans l'autre.

dans l'application non-travail

void Login1_LoggingIn(object sender, LoginCancelEventArgs e) 
{ 
    string username = Login1.UserName.Trim(); 
    if (!string.IsNullOrEmpty(username)) 
    { 
     MembershipUser user = Membership.GetUser(username); 
     if (user != null) 
     { 
      // Only adjust the UserName if the password is correct. This is more secure 
      // so a hacker can't find valid usernames if we adjust the case of mis-cased 
      // usernames with incorrect passwords. 
      string password = Login1.Password.ToUpper(); 
      if (Membership.ValidateUser(user.UserName, password)) 
      { 
       Login1.UserName = user.UserName; 
      } 
     } 
    } 
} 

ne fonctionne pas. le mot de passe est stocké en majuscules. Converti au moment de la création de l'utilisateur d'appartenance! Donc, si le mot de passe est PASSWORD, le fait de taper PASSWORD me permet de m'authentifier. mais ne pas taper le mot de passe! Même si je peux voir que la chaîne envoyée est PASSWORD (convertie avec toUpper()).

Je suis à une perte complète sur ce .. dans l'autre application, je peux taper en bas ou supérieur ou mixte et je suis en mesure d'authentifier. Dans l'autre application, je n'utilise pas les zones de texte du contrôle de connexion si .. pas sûr si cela fait la différence?

Répondre

0

Vous validez simplement l'utilisateur avec le mot de passe ucased, vous ne les connectez pas, cela se produit à un stade ultérieur du processus. Une fois que vous avez vérifié le mot de passe, mettez à jour la zone de texte du mot de passe de Login1 avec le mot de passe ucased au même endroit où vous mettez à jour le nom d'utilisateur.

me semble me rappeler ce mot de passe est en lecture seule et vous aurez besoin d'utiliser quelque chose comme ceci:

((TextBox)Login1.FindControl(view source to find the login inputs id)).Text = password; 

Cela devrait vous donner les résultats que vous recherchez.