2012-04-03 7 views
1

Okay, ich habe eine Aufgabe, dass ich den Client versuchen muss, das Passwort 3 Mal eingeben, wenn er nicht das richtige Passwort in 3 Mal eingeben, wird es ihn auf eine andere Seite umleiten Die Sache ist, dass ich nicht weiß, wie ich die Sitzung benutzen kann, wie kann ich ++ oder so etwas machen.Hinzufügen zu der Sitzungsnummer

Session["counter"] = 0; 

Und ich versuche folgendes zu tun:

Session["counter"]++; 

Wie kann ich erkennen, wenn der Client versucht, das Passwort 3 mal eingeben? Danke

Antwort

2
int counter=1; 
Session["counter"]=counter; 

Wenn Sie, dass aktualisieren möchten, lesen Sie den Wert und wandeln sie erhöhen auf int und dann speichern zurück

if(Session["counter"]!=null) 
{ 
counter=Convert.ToInt32(Session["counter"]); 
} 
counter++; 
Session["counter"]=counter; 

EDIT: Gemäß dem Kommentar, Dies ist, wie Sie können den Zählerwert überprüfen. Ich habe die Überprüfung innerhalb von 2 Methoden abgeschlossen und Sie können sogar Eigenschaften verwenden, wie andere erwähnt.

private int GetLoginAttempts() 
{ 
    int counter=0; 
    if(Session["counter"]!=null) 
    { 
    counter=Convert.ToInt32(Session["counter"]); 
    } 
    return counter; 
} 
private void IncreaseLoginAttempts() 
{ 
    if(Session["counter"]!=null) 
    { 
    counter=Convert.ToInt32(Session["counter"]); 
    } 
    counter++; 
    Session["counter"]=counter; 
} 

und wenn der Benutzer (in der Schaltfläche klicken/action-Methode) um sich einzuloggen versucht, überprüfen Sie den aktuellen Wert

if(GetLoginAttempts()==3) 
    { 
     //This means user already tried 3 times, show him a message ! 
    } 
    else 
    { 
     //Do the login process, If login fails, increase the counter 
     IncreaseLoginAttempts() 
    } 
+0

Vielen Dank für Ihre Antwort, aber wie kann ich überprüfen, ob der Sitzungszähler 3 ist? Wie kann ich das machen, wenn Aussage? – idish

+0

@idish: Ich aktualisiere die Antwort für Ihren Kommentar – Shyju

+0

Können wir diesen Code auf eine einzige Eigenschaft reduzieren? – Pankaj

1

Versuchen Sie es.

int counter = Int32.Parse(Session["counter"].ToString()); //Session["counter"] may be null 

Session["counter"] = ++counter; 
0

Man könnte es implementieren, indem sie in einer Eigenschaft als so Verpackung:

public int PasswordAttempts 
    { 
     get 
     { 
      if (Session["PasswordAttempts"] == null) 
       Session["PasswordAttempts"] = 0; 

      return (int)Session["PasswordAttempts"]; 
     } 
     set 
     { 
      Session["PasswordAttempts"] = value; 
     } 
    } 

    protected void Submit_Click(object sender, EventArgs e) 
    { 
     PasswordAttempts++; 
    } 
0
private Int16 Counter 
{ 
    get 
    { 
     if (ViewState["Counter"] == null) 
      return 0; 
     else 
      return Convert.ToInt16(ViewState["Counter"]); 
    } 
    set 
    { 
     Int16 counter = 0; 
     if (ViewState["Counter"] == null) 
      counter = 0; 
     else 
      counter = Convert.ToInt16(ViewState["Counter"]); 
     ViewState["Counter"] = counter + 1 + value; 
    } 
} 
if(counter == 3) 
{ 
}