Announcement

Collapse
No announcement yet.

Masterpage und Login

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Masterpage und Login

    Hallo,
    noch einmal ich.

    Ich habe für meine Anwendung eine Masterpage erstellt. In diese prüfe ich immer, ob meine Session Variable "Logged" auf true/false steht. Wenn false muss sich der User noch einloggen und ich leite diesen auf die Loginseite weiter.

    Problem, wenn ich für meine Loginseite ebenfalls die Masterpage verwende, entsteht ein Loop. Kann ich das irgendie abfangen? Kann ich in der Masterpage prüfen, welche Seite gerendert wird?

    Bin für jeden Rat dankbar.

    THX PP

  • #2
    Erst einmal eine kleine Frage. Du arbeitest doch sicherlich mit ASP.NET und dem .NET Framework 2.0 oder höher. Wieso verwendest du nicht einfach das Logincontrol und dann setzt du deine Einstellung in der Web.Config auf Forms-Authentication.

    Naja zu deinem Problem... du kannst ja in deiner Masterpage vor deiner Sessionvariablenprüfung eine Prüfung machen welche Seite z.Z. aufgerufen ist.

    z.B. so:

    Code:
    //aktuelle Seite
    string myCurrentPage = Request.FilePath;
    
    //Abfrage ob aktuelle Seite "login.aspx" ist
    if (!myCurrentPage.Contains("login.aspx"))
    {
    
    //Weiterleitung zur Loginseite
    Response.Redirect("login.aspx");
    
    }

    Comment


    • #3
      Originally posted by Hahne View Post
      Erst einmal eine kleine Frage. Du arbeitest doch sicherlich mit ASP.NET und dem .NET Framework 2.0 oder höher. Wieso verwendest du nicht einfach das Logincontrol und dann setzt du deine Einstellung in der Web.Config auf Forms-Authentication.
      Hallo Hahne,

      danke für die Info.
      Ja könnte das Logincontrol verwenden, habe dabei aber zwei Fragen:
      1) Wird dann mein Proplem mit der Masterpage automatisch gehandelt?
      2) Kann ich meine User auch selbst in einer Datenbank-Tabelle verwalten und dort prüfen lassen?

      THX PP

      Comment


      • #4
        Also ich verwende selbst immer das Logincontrol und ich hab es folgendermaßen realisiert...

        Als erstes musst du in der Web.Config einstellen, dass du als Authentifizierungsmodus "Forms" verwenden möchtest. So ähnlich schaut es bei mir in der Web.Config immer aus:

        Code:
        <authentication mode="Forms">
        <forms name="theName" loginUrl="Login.aspx" protection="All" timeout="15"/>
        </authentication>
        Anschliessend erstellst du dir die Seite Login.aspx und platzierst darauf ein Logincontrol. Dann erstellst du im CodeBehind das Event LoginControl_Authenticate (Kannst du auch automatisch erstellen indem du doppelt auf das Logincontrol klickst). In diesem Event steht dann bei mir folgendes:

        Code:
        protected void LoginControl_Authenticate(object sender, AuthenticateEventArgs e)
        {
        //Check if user is authorized
        e.Authenticated = Auth.UserAuth(LoginControl.UserName, LoginControl.Password);
        }
        e.Authenticated legt hierbei fest ob der User authentifiziert ist oder nicht. "Auth" ist meine Klasse die ich extra angelegt habe mit der Methode "UserAuth" in der ich einfach eine Datenbankabfrage mache ob der User mit dem Passwort existiert. Wenn ja wird mir true zurückgegeben ansonsten false.

        Das tolle ist wenn du e.Authenticated erst einmal auf true gesetzt hast gilt das für dein gesamtes Projekt und du musst nciht mehr prüfen ob der User eingeloggt ist. Du kannst dann ganz einfach ein LoginViewControl verwenden wo du dann die Auswahl hast zwischen "Ansicht angemeldeter User" und Ansicht abgemeldeter User". Es gibt noch diverse andere tolle Controls die dabei sind. Mit Loginstatus kansnt du dich z.B. entweder anmelden oder abmelden.

        Hoffe ich konnte das einigermaßen erklären. Sonst einfach fragen

        Comment

        Working...
        X