Autor Beitrag
Svenni9991
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 31.10.13 15:24 
Hallo Leute,

momentan bin ich zur Optimierung am Intranet dran (arbeite mit MS Visual Studio 2010 mit ASP.NET bzw. C#).

Wir haben in unserem Intranet 2 Anmeldebereiche. Bei beiden kann man sich mit den Anmeldedaten einloggen und man kommt wieder zu der jeweiligen Seite auf der man sich vorher befand (Login-Seite ist eine extra Seite).

Zur Zeit ist es noch so, das wenn man sich mit den Administratordaten anmeldet man erstmal auf die Startseite geleitet wird.
Damit man dann aber nicht erst wieder auf den Bereich klicken muss zu dem man wollte habe ich mir gedacht: Man könnte die URL ja auslesen und in einer Variable zwischenspeichern und wenn auf der Login-Seite der Bestätigen-Button gedrückt wurde (und Benutzername und Passwort stimmen) wird durch einsetzen der Variable in Response.Redirect(Variable) die zuvor besuchte Seite aufgerufen.

Um den Verlauf etwas besser verstehen zu können hier einmal ein kurz beschriebener Ablauf:
Man befindet sich auf der Startseite und will den ersten Anmeldebereich betreten. Beim Laden der Seite des ersten Anmeldebereichs wird geprüft ob im Anmeldebereich1 oder Anmeldebereich2 schon jemand eingelogged ist. Wenn ja wird die Person auf die ausgewählte Seite geleitet.
Wenn niemand angemeldet ist, dann wird die URL in die Variable url geschrieben und über ein setSeite(url) gespeichert. Dieses setSeite(string seite) befindet sich (nach einigen eigenen Versuchen) im Code der Login-Seite. Auf diese wird nach speichern der Variable verwiesen.
Da aber bei dem Aufruf der Login-Seite die Seite logischerweise neu geladen wird, werden auch die Variablen geleert und haben keine Werte mehr, also ist mein url NULL.
Wäre das url noch gefüllt würde nach der Kontrolle des Benutzernamens und des Passwortes auf die vorher besuchte Seite weiter geleitet werden. Da url aber NULL ist kommt eine Fehlermeldung (auch logisch^^).
Da bei beiden Anmeldebereichen eh auf die Loginseite verwiesen wird haben ich mir gedacht, könnte ich auch, um das Problem zu lösen, den Aufruf der Login-Seite in die setMethode ans Ende packen.
Kurz gesagt: Ich würde die Klasse in der ich mich befinde quasi noch einmal aufrufen bzw eine Methode in dieser Klasse.

UND JETZT KOMMT DIE FRAGE:

Wie mache ich das? Hab schon überall gegooglt aber nichts gefunden.
Da ich auch nur die Methoden Page_Load(object sender, EventArgs e) und btnLogin_Click(object sender, EventArgs e) dort habe weiß ich nicht wie ich die Klasse aufrufen kann.
Wenn ich in der set-Methode am Ende schreiben würde Page_Load(); muss ich ja auch 2 Werte mit geben nur welche Werte trägt man bei object und EventArgs ein oder welche Lösung könnte es noch geben?
Und werden die Variablen auch geleert wenn ich einfach nur in eine neue Methode springe, weil ich mich in dem Moment, in dem ich das url mit setSeite(url) speicher ja trotzdem noch im Code des Anmeldebereichs befinde?

Ich würde mich über eure hilfe sehr freuen!

Viele Grüße
Svenni9991
MikeTango
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 13.02.14 18:05 
Hallo Svenni,

hast du es schon mal mit Session's versucht?
ausblenden C#-Quelltext
1:
Session.Add("lastRequestUrl", url); // || Session["lastRequestUrl"] = url;					


VG

Moderiert von user profile iconTh69: C#-Tags hinzugefügt