If Is PostBack soll feststellen...

Deletemaster

Erfahrenes Mitglied
Hallo zusammen,

in meiner WebApplikation sollen User die Möglichkeit haben, nachdem sie registriert sind, über ein Login-Formular zu einer bestimmten Seite zu gelangen.
Diese Seite baut in einigen Funktionen Verbindungen zur DB auf.

1. Aus Sicherheitsgründen soll diese Seite auch nur geöffnet werden, wenn der User sich über das Login-Formular *.aspx authentifiziert hat.

Code:
 if ( str_username == benutzername && str_Kennwort == passwort )
                {
                    Alert.Show("OK"); // zum Testen
                    Window.Open(Pfad zum Zieformular);
                }

2. Weiterhin möchte ich die Daten aus dem Login-Formular an das ZielFormular übergeben.
Z.B. Guten Tag Her/Frau Sie waren das letzte mal am: <Datum> um: <Zeit>hier
dazu habe ich das Feld: <LastVisit> vom Typ Date angelegt.
Die Werte für LastVisit sollen beim PageLoad-Ereignis geladen werden.

In meinen ersten Gehversuchen mit ASP.NET konnte ich in die Adresszeile des Browsers meine Zielseite eingeben und gelangte so an alle Daten. Das soll vermieden werden!

Danke für Eure Hilfe
 
Zuletzt bearbeitet:
Eigentlich recht einfach:
C#:
void Page_Load(object sender, EventArgs e)
{ 
    Response.Write ("Die Seite wird in 5 Sekunden geladen");
    Response.AppendHeader ("Refresh", "5;URL=http://www.tutorials.de/"); 
}
 
Guten Morgen Norbert,

erst mal Danke für Deine Antwort.
2 Probleme habe ich noch:

Das Login-Formular ist ein kleines PopUp, daß heißt das Zielformular wird in diesem PopUp geladen.
Zweitens ist bestimmt noch ein zusätzlicher Eintrag notwendig?, da ich das "Zielformular" direkt in der Adresszeile eingeben und aufrufen kann, genau das möchte ich vermeiden.

LoginForm: // PopUp Grösse: Breite, Höhe280, 200 wird über LinkButton aufgerufen

Code:
    protected void btn_Login_Click(object sender, EventArgs e)
    {    
        string str_username = txt_UserName.Text;
        string str_Kennwort = txt_Pwd.Text;
        string benutzername;
        string passwort;

        OdbcDataReader reader = null;

        OdbcCommand cmd = new OdbcCommand();
        cmd.Connection = conn;

        cmd.Parameters.Add("@Benutzername",str_username);
        cmd.Parameters.Add("@Kennwort", str_Kennwort);
        cmd.CommandText = "SELECT benutzername AS Benutzername, kennwort AS Kennwort FROM benutzer where benutzername = '" + str_username + "'";

        try
        {
           conn.Open();

           reader = cmd.ExecuteReader();

           while (reader.Read())
           {
               benutzername = (string)reader.GetValue(0);
               passwort = (string)reader.GetValue(1);//Spalte in tabelle
                if ( str_username == benutzername && str_Kennwort == passwort )
                {
                    Alert.Show("OK");
                    txt_UserName.Text = "";
                    Response.Redirect("zielformular.aspx"); 
                }
            }
            Alert.Show("Sie sind nicht registriert !");
            reader.Close();
       }
    catch (Exception ex)
    {
        Alert.Show(ex.Message);
    }
            conn.Close();
}

Zielformular:

Code:
public partial class httpdocs__private_verwaltung : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("Die Seite wird in 5 Sekunden geladen"); Response.AppendHeader("Refresh", "5;URL=http://www.meineseite.de/verzeichnis/datei.aspx/"); 
    }
}

Welche Möglichkeit gibt es zu prüfen, bevor ein Formular geöffnet werden kann, ob der Aufruf durch die LoginForm kam?

Danke für Deine Hilfe
 
Stichwörter: Session, Sessionhandling

Warum machst du dafür ein eigenes Popup? Ich denke hier an Popup-Blocker etc. Ungünstig...
 
Hallo Norbert,

habe in meinem Buch ASP.NET Grundlagen u.Profiwissen" (2002) nachgelesen, aber nicht wirklich erfolgreich
über SeesionHandling ist nichts.
Über Sessions, wie oft ein Client eine Seite besucht steht eine Menge drin, nicht aber über Seitenzugriff mit Sicherheit.

Ich habe allerdings im Netzt etwas gefunden, was ich leider nicht realisieren kann:

hier zu finden

zumal hier Zitat" set oLogIn = Server.CreateObject("ppDB.DBAccess")
" ein Access-Objekt angelegt wird?

ich habe erstmal eine Datei global.asax angelegt:

Code:
 void Application_Start(object sender, EventArgs e) 
    {
        // Code, der beim Starten der Anwendung ausgeführt wird.
            Session("Zugriff")  = false
            Session("Username") = ""
    }

Nun ist dieses Beispiel in VB was ich nicht richtig "übersetzen" kann zumal die Funktionen hier innerhalb der *.aspx Seite liegen.

Ich arbeite lieber mit dem Code Behind *.cs

Ich suche ein Beispiel an dem ich die Funktionsweise "nachvollziehen" kann

Danke für Deine Hilfe
 

Neue Beiträge

Zurück