Hey Ho 🙂
Habe ein Problem. 😦
Ich bin gerade dabei in einer fertigen WebApplication die FormsAuthentication einzubauen.
Ich habe folgendes Problem:
Die Startseite meine Page heisst Index.aspx
Auf dieser Index.aspx ist eine WebControlFactory die mir währen der laufzeit immer die benötigten Controls lädt.
Ich rufe die Index.aspx auf und sehe das Login. Wenn ich mich erfolgreich eingeloggt habe wird ein Redirekt auf Index.aspx?cmd=Users gemacht.
So weit so gut. Doch wenn ich in der Adressleiste im Browser Index.aspx?cmd=Users eingebe komme ich trotzdem in den geschützten Bereich! Trotz FormsAuthentication!
Wenn ich aber ne andere aspx seite aufrufe werde z.B. test.aspx werde ich auch die Index.aspx redirected.
Ist es möglich, dass die Forms Authentication nicht mit solchen Parametern umgehen kann?
Freue mich auf eine Antwort.
p.s.: Leider darf ich keinen Code posten. 😦
mfg
Tomek
Microsoft Certified Professional (MCP)
Meine persönliche Seite: www.tomeks-world.de
Original von tomek2k1
Ist es möglich, dass die Forms Authentication nicht mit solchen Parametern umgehen kann?
Ja, ist durchaus möglich. Ich denke die Authentication wird sich einfach nur den Dateinamen, ohne Parameter anschauen und dann entscheiden ob die Seite "frei" ist, oder nicht.
Naja... ist ziemlich blöd... 😦
Ich hoffe, dass das im .NET 2.0 Framwork anders ist.
Hat damit vielleicht schon jemand Erfahrung, was genau diese Problem angeht?
Microsoft Certified Professional (MCP)
Meine persönliche Seite: www.tomeks-world.de
Denke nicht das diese Gegebenheit im Framework 2.0 anders ist. Eigentlich ist diese Lösung ja auch logisch....
Kann es sein, dass Du eine Browser-Instanz verwendest, mit der Du Dich bereits erfolgreich eingelogged hast oder nimmst Du für's Testen stets ein "frisches" Browser-Fenster?
Grüsse
Ich nehme einen "frischen" Browser. Ich builde den Kram und dann starte ich es nicht übers Visual Studio sondern über den Internet Explorer.
Ich habe es auch schon auf einem Server Deployed und da ist es das gleiche Problem 😕
Microsoft Certified Professional (MCP)
Meine persönliche Seite: www.tomeks-world.de
Es wird so sein, wie ich es gesagt habe. Zur Überprüfung wird nur der Dateiname, ohne Querystrings benutzt.
Das denke ich auch.... habe das Problem mittlerweile per Code gelöst, in dem ich selber in die Session schreibe und sie immer wieder abfrage, sobald ein Control geladen wird.
Aber im Grunde ist das doch kacke!
Microsoft Certified Professional (MCP)
Meine persönliche Seite: www.tomeks-world.de
Original von tomek2k1
Aber im Grunde ist das doch kacke!
Nein, eigentlich nicht. Wenn es nicht so wäre, hätte es meiner Meinung nach mehr Nachteile.
Wenn du nur in deiner index.aspx arbeitest, dann muss du die Benutzer wohl oder übel im Programm abfangen. Falls du jedoch eine extra login Seite machst, dann kannst du diese in der web.config angeben und den Rest (index.aspx) nur für registrierte Benutzer freigeben.
Ich denke, dass du mit einer art "CMS" arbeitest. Das gleiche hatte ich mal vor. Jede Control wird aus ner Datenbank gelesen und auf die Seite geladen. Hat alles super funktioniert. Leider ist das Projekt in den Hintergrund geraten.
Ich denke, du solltest "WebControlFactory" in eine extra Assamblie auslagern und diese in eine neue Control einfügen, mit welcher du je nach Benutzeranmeldung deine Controls auf die Seite lädst.
Oder du machst es ganz anders und nimmst die Benutzerverwaltung als fundamentalen Baustein in deine index.aspx.