Hi Liste,

ich habe in einer Site einen gesch�tzten Bereich (Username und
Passwort). Beim Einloggen habe ich eine Session-Variable gebaut die im
gesamten gesch�tzten Bereich verf�gbar ist. Nun m�chte ich einen
Logout-Button bauen der auf die Index-Seite der Site f�hrt. Dabei soll
die Session-Variable entweder gel�scht oder mit einem anderen Wert
gef�llt werden. Es darf eben nicht m�glich sein mit dem Return-Button
des Browsers wieder in den gesch�tzten Bereich zu gelangen. Habt ihr da
ne Idee?? Thx. Ralph


| [aspdedotnet] als [EMAIL PROTECTED] subscribed 
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv Sie 
| k�nnen sich unter folgender URL an- und abmelden: 
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp

Hi!

Am besten erstellst du dir ersteinmal eine Seite mit einer Textbox (z.B.
ID="txtName") zum Eingabe des Loginnamens, eine Textbox zur Eingabe des
Passwortes (z.B. ID="txtPasswort") und eine Checkbox zum Setzen eines
permanenten Cookies (z.B. ID="cbnpersist")!

Die Eingaben �berpr�fst du anschliessend aus der Datenbank.
Anschliessend setzt du ein permanentes Cookie:
Z.B.

   Public Sub Login_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)

        Dim Cnn As SqlConnection = New SqlConnection("data source=xxx;
initial catalog=Login; UID=xxx; PWD=xxx")

        Cnn.Open()
        Dim Cmd As SqlCommand = New SqlCommand("SELECT Loginname,
Loginpasswort FROM Login", Cnn)
        Dim Dr As SqlDataReader = Cmd.ExecuteReader

        Do While Dr.Read

            If txtUsername.Value = Dr.Item("Loginname") And
txtPassword.Value = Dr.Item("Loginpasswort") Then

Cookie -->      FormsAuthentication.SetAuthCookie(txtUsername.Value,
cbnPersist.Checked)

                Dr.Close()
                Dr = Nothing
                Cmd = Nothing

                Cnn.Close()
                Cnn = Nothing

                Response.Redirect("main.htm")

            End If

        Loop

        lblMessage.Text = "Unbekannter Benutzername oder unbekanntes
Passwort. Bitte �berpr�fen Sie Ihre Eingaben!"

        Dr.Close()
        Dr = Nothing
        Cmd = Nothing

        Cnn.Close()
        Cnn = Nothing

    End Sub

Diesen gesetzten Namen kannst du dann auf den folgenden Seiten per
page.user.identity.name immer wieder abfragen.

Aber das ist noch nicht das wichtigste. Du musst auch noch folgende
Eintragungen in der web.config machen:
Einmal hier:

  <authentication mode="Forms" > 
    
                <forms name="formsauth" loginUrl="default.aspx"
                        protection="All" timeout="60" />
        
        </authentication>

Wobei Login-URL die URL ist wohin du umgeleitet wirst, wenn das Cookie
erloschen ist oder ge�ndert (!) wurde!
Und dann noch hier:

 <authorization>
       
        <deny verbs="GET, POST" users="?" />
        
 </authorization>

Damit verhinderst du den unerlaubten Zugriff eines unauthorisierten
Users.

Und zum Schluss noch der Logout-Button:

Am besten erstellst du einen Button der folgende Sub aufruft:

Public Sub Logout_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)

        FormsAuthentication.SignOut()
        Response.Redirect("default.aspx")

    End Sub

Dann wirst du auf die Startseite weitergeleitet, an der er wieder seine
Kennung angeben muss. Und auch die Return-Funktion des Browsers hilft
ihm da nicht mehr weiter.

Hoffe dir damit geholfen zu haben.

Gruss
Michael


| [aspdedotnet] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp

Antwort per Email an