2009-12-21 9 views
0

J'ai effectué mon codage dans la console et utilisé un fichier system.console. écrire une ligne dans presque toutes les instructions if/else afin d'afficher un message d'erreur si de fausses valeurs sont entrées pour dire si cela ne va pas. Cependant, j'essaie d'appliquer la même analogie dans les formulaires Web, de sorte que s'il y a une erreur de l'utilisateur lors de l'exécution des conditions, un message d'erreur peut s'afficher sur l'écran de l'utilisateur.Affichage des messages d'erreur dans les formulaires Web C#

Comment puis-je afficher les erreurs? Je connais les validations d'éléments mais ne peux pas appliquer cela en utilisant if et else. Cependant, si j'utilise try catch, je ne sais pas quel code affiche le message d'erreur à l'utilisateur. mais je sais pour sûr que je ne peux pas utiliser SC.writelines.

un échantillon de mon code est des conseils below.please .. Login1_Authenticate protected void (object sender, AuthenticateEventArgs e) { chaîne strConn; chaîne userType;

 strConn = "Provider=MIcrosoft.Jet.OLEDB.4.0;data Source=" + 
      Server.MapPath("App_Data/test.mdb"); 

     OleDbConnection mDB = new OleDbConnection(strConn); 

     mDB.Open(); 

     userClass aUser = new userClass(); 

     if (aUser.verifyUser(mDB, Login1.UserName, Login1.Password)) 
     { 
      userType = aUser.getUserDesc(); 

      if (userType.ToLower() == "customer") 
      { 
       Response.Redirect("StaffMenu.aspx"); 
      } 
      else if (userType.ToLower() == "front desk") 
      { 
       Response.Redirect("StaffMenu.aspx"); 
      } 
      else if (userType.ToLower() == "technician") 
      { 
       Response.Redirect("StaffMenu.aspx"); 
      } 
      else if (userType.ToLower() == "admin") 
      { 
       Response.Redirect("StaffMenu.aspx"); 
      } 
     } 
     else 
     { 
      e.Authenticated = false; 
     } 
     mDB.Close(); 

lorsque le programme passe à la classe utilisateur pour exécuter le vérifier méthode, il le fait en exécutant le bock de code suivant ..

public bool verifyUser (OleDbConnection mdb, chaîne userIDStr, chaîne userPwrdStr) { chaîne sqlQuery; OleDbCommand cmd; OleDbDataReader rdr;

 //SC.Write("\n*******User Login********\nEnter User ID:"); 

     //userIDStr = userIDInt.ToString(); 

     //SC.Write("\nEnter User Password:");    
     //userPwrdStr = userPwrdStr; 

     sqlQuery = "SELECT UserID, UserPassword, UserDescription FROM UserTable WHERE UserID = " + 
      toSql(userIDStr); 
     cmd = new OleDbCommand(sqlQuery,mDB); 

     //Boolean valid = false; 
     //Boolean HasRows = false; 
     try 
     { 
      rdr = cmd.ExecuteReader(); 

      if (rdr.HasRows) 
      { 
       while (rdr.Read()) 
        if (userIDStr == (string)rdr["UserID"]) 
        { 

         if (userPwrdStr == (string)rdr["UserPassword"]) 
         { 
          userDescStr = (string)rdr["UserDescription"]; 
          if (userDescStr.ToLower() == "admin") 
          { 
           //SC.WriteLine("Welcome to Admin Main Menu"); 
           return true; 
          } 
          else if (userDescStr.ToLower() == "front desk") 
          { 
           //SC.WriteLine("Welcome to Front Desk Staff Main Menu"); 
           return true; 
          } 
          else if (userDescStr.ToLower() == "technician") 
          { 
           //SC.WriteLine("Welcome to Technical Staff Main menu"); 
           return true; 
          } 
          else if (userDescStr.ToLower() == "customer") 
          { 
           //SC.WriteLine("Sorry, Customers are not allowed access to the Administrative page"); 
           return true; 
          } 

         } 
         else 
         { 

          //SC.WriteLine("\nInvalid User Password, Please try again"); 
          //verifyUser(mDB); 

         } 
        } 
        else 
        { 
         //SC.WriteLine("Invalid User ID, Please try again"); 
         //verifyUser(mDB); 
        } 


       //HasRows = true; 
      } 
      rdr.Close(); 
     } 
     catch (Exception ex) 
     { 
      SC.WriteLine(ex.Message); 
     } 

     return false; 



    }//=================================end verify User() 

comment jamais si le mauvais nom d'utilisateur ou mot de passe est entré, comment puis-je afficher un message d'erreur à l'utilisateur à laquelle des contrôles reçoit une valeur incorrecte ...

espère utiliser ce code pour remplacer mes SC.writelines qui affiche des messages à l'utilisateur ....

Répondre

1

Vous seriez probablement construire une liste d'erreurs dans une chaîne et les assigner à une étiquette sur le formulaire, ou potentiellement un ul tag.

Je vous recommande également de ne pas différencier si un nom d'utilisateur ou le mot de passe est invalide. S'ils ne parviennent pas à se connecter, vous devriez simplement afficher un message "Impossible de se connecter". S'ils obtiennent un nom d'utilisateur correct et un mot de passe incorrect, alors en utilisant votre méthode, je saurais que j'avais deviné un nom d'utilisateur correct et pourrais marteler des mots de passe pour cela.


En outre, avez-vous regardé les contrôles de connexion intégrés ASP.net et les fournisseurs d'adhésion? Ils prennent soin de beaucoup de cela pour vous, ou vous pouvez rouler le vôtre qui s'intègre avec les contrôles fournis.

+0

Merci ... id prendre pas du conseil – Selase

Questions connexes