2009-02-12 4 views
0

Quelqu'un s'il vous plaît aidez-moi en modifiant ce code.Dans ma page de connexion, j'ai trois colonne Login, UserName, Password.In Connexion J'ai gardé dropdownlist avec deux liste Admin et User.So Quand je choisis Admin, UserName, mot de passe il devrait aller à la page de destination désirée et quand je choisis l'utilisateur, le nom d'utilisateur, le mot de passe il devrait aller à une autre page de destination désirée. Voici mon code. S'il vous plaît aidez-moi ......Besoin d'aide dans le code de connexion dans asp .net

Login.aspx:

<asp:Label ID="lblLogin" runat="server" Text="Login" CssClass="Label"></asp:Label>  
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"> 
             <asp:ListItem>Admin</asp:ListItem> 
             <asp:ListItem>User</asp:ListItem> 
            </asp:DropDownList>    
<asp:Label ID="lblUserName" runat="server" Text="User Name"</asp:Label>       
          <asp:TextBox ID="TxtUserName" runat="server" TextMode="SingleLine"></asp:TextBox>     
          <asp:Label ID="lblPassword" runat="server" Text="Password" CssClass="Label"></asp:Label>      
          <asp:TextBox ID="TxtPassword" runat="server" TextMode="Password"></asp:TextBox>       
         <td align="center"> 
          <asp:Button ID="BtnLogin" runat="server" Text="Login" 
           onclick="BtnLogin_Click"/> 

Login.aspx.cs:

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    Session["UserName"] = TxtUserName.Text; 
    Login lg = new Login();   
    if ((lg.GetLogin(TxtUserName.Text, TxtPassword.Text) == 1)) 
    { 
     Response.Redirect("c1.aspx"); 
    }  
    else 
    {   
     Lbl1.Text = "Sorry,Invalid UserName or Password"; 
    }  

Login.cs:

public class Login 
{ public string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); 
public int GetLogin(string UserName, string Password) 
{ 
    SqlConnection con = new SqlConnection(str);  
    SqlDataAdapter da = new SqlDataAdapter("select * from Login where UserName='"+UserName+"' and Password='"+Password+"'",con);  
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    if (ds.Tables[0].Rows.Count > 0) 
    { 
     if ((ds.Tables[0].Rows[0].ItemArray[1].ToString() == UserName) && (ds.Tables[0].Rows[0].ItemArray[2].ToString() == Password)) 
     { 
      return 1; 
     } 
     else 
     { 
      return 0; 
     } 
    } 
    else 
    { 
     return -1; 
    } 
} 

Merci, Masum

+0

Quel est le problème? –

+0

selon l'événement de valeur d'article de liste devrait se produire.Mais comment comparer trois domaine comme Admin/Utilisateur, UserName, Password.Its travaillant avec deux contrôle UserName et mot de passe mais je veux comparer la valeur Listitem aussi .. – user59637

+1

Je ne ferais pas confiance les utilisateurs à décider s'ils sont des utilisateurs ou des administrateurs –

Répondre

1

Sapins tly, votre ouverture de votre application et attaque par injection SQL. Je suggère au moins d'utiliser une procédure stockée pour interroger les informations d'identification de connexion sur votre base de données pour minimiser ce risque.
Première règle d'entrée de l'utilisateur - ne faites pas confiance à l'entrée de l'utilisateur.
Il peut être utile d'avoir un regard sur cette question pour une aide supplémentaire:

What is the best way to avoid sql injection attacks

En ce qui concerne le problème de votre demande d'aide avec, sûrement vous avez juste besoin de prendre une décision de rediriger en fonction de la valeur sélectionnée la liste déroulante si la méthode GetLogin() est réussie.

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    Session["UserName"] = TxtUserName.Text; 
    Login lg = new Login();   
    if ((lg.GetLogin(TxtUserName.Text, TxtPassword.Text) == 1)) 
    { 
     if(DropDownList1.SelectedValue == "Admin") 
     { 
      Response.Redirect("c1.aspx"); 
     } 
     else if(DropDownList1.SelectedValue == "User") 
     { 
      Response.Redirect("c2.aspx"); 
     } 
    }  
    else 
    {   
     Lbl1.Text = "Sorry,Invalid UserName or Password"; 
    } 
0

Vous pouvez envisager de mettre en œuvre Forms Authentication with Role-based security. Ensuite, vous pouvez rediriger en fonction de si un utilisateur a un rôle particulier. Quelque chose comme -

//if (HttpContext.Current.User.Identity.IsAuthenticated) 
//{ 
    if (User.IsInRole("Administrator")) 
    { 
    Response.Redirect("myAdminPage.aspx"); 
    } 
    else if (User.IsInRole("User")) 
    { 
    Response.Redirect("myUserPage.aspx"); 
    } 
//} 
    else 
    { 
    Lbl1.Text = "Sorry,Invalid UserName or Password"; 
    } 
Questions connexes