2009-12-21 4 views
0

나는 콘솔에서 코딩을하고 system.console을 사용했습니다. 거의 모든 if/else 문에 줄을 써서 틀린 것이 있으면 잘못된 값이 입력되면 오류 메시지를 표시하십시오. 조건을 실행하는 동안 사용자 오류가 발생하면 웹 양식에 동일한 비유를 적용하려고 시도하는 동안 오류 메시지가 화면의 사용자에게 표시 될 수 있습니다.C# 웹 양식의 오류 메시지 표시

어떻게 오류를 표시합니까? 항목 유효성은 알고 있지만 기울임은 if 및 else를 사용하여 적용됩니다. 그러나 내가 잡는 시도를 사용하면 어떤 코드가 사용자에게 오류 메시지를 표시하는지 알지 못합니다. 하지만 나는 확실히 SC.writelines를 사용할 수 없다는 것을 압니다.

내 코드의 샘플을 below.please 조언 .. 보호 무효 Login1_Authenticate (개체를 보낸 사람, AuthenticateEventArgs 전자) { 문자열 strConn이다; string 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(); 

프로그램이 검증 방법을 실행하는 사용자 클래스로 이동, 그것을 수행하므로 다음 코드 복을 .. 실행하여

공공 부울 verifyUser

(는 OleDbConnection MDB, 문자열 userIDStr, 문자열 userPwrdStr) { string 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() 

, ...

사용 바라고 이 코드는 메시지를 사용자에게 표시하는 SC.writel을 대체합니다. ...

답변

1

문자열의 오류 목록을 작성하여 양식의 레이블 또는 잠재적으로 ul 태그에 할당 할 수 있습니다.

사용자 이름이나 비밀번호가 유효하지 않은지 여부를 구분하지 않는 것이 좋습니다. 관리자가 로그인 할 수 없다면 '로그인 할 수 없습니다.'라는 메시지 만 표시하면됩니다. 그들이 올바른 사용자 이름과 잘못된 암호를 얻었다면 사용자의 방법을 사용하여 올바른 사용자 이름을 추측하고 암호를 해독 할 수 있음을 알았습니다.


또한 기본 제공 ASP.net 로그인 컨트롤과 멤버 자격 공급자를 살펴 보았습니까? 그들은 당신을 위해 이것을 많이 돌 보거나 제공된 컨트롤과 통합 된 자신 만의 롤을 만들 수 있습니다.

+0

감사 ... id는 조언을하지 않습니다. – Selase

관련 문제