Bei mir bleibt Membership.GetUser() = Nothing

23/10/2007 - 18:38 von Andreas Mahub | Report spam
Hi,

ich habe mich heute mit dem Login-Form beschàftigt. Vorher habe ich natürlich
mit aspnet_regsql.exe die nötigen Datenbanktabellen anlegen lassen.

Danach habe ich das Registrierungsformular auf default.aspx abgelegt und
getestet.
Der User wurde angelegt und in der Datenbanktabelle aspnet_users wird der
Benutzer automatisch angelegt.

Jetzt habe ich ein Login Formular auf default.aspx abgelegt mit der
DestinationURL
zur default2.aspx. default.aspx aufgerufen, versuch mit einem falschen Login
klappte nicht, versuch mit dem richtigen Login kam ich zur leeren
default2.aspx.

Jetzt habe ich in Page_Load der default2.aspx folgendes abgelegt:

Dim User1 As MembershipUser = Membership.GetUser()
If IsNothing(User1) Then
Response.Write("Nicht angemeldet!")
Else
Response.Write("User: " & User1.UserName)
End If

Mit dem Ergebnis, es kommt immer "Nicht angemeldet". User1 ist Nothing, war
warum?! Laut meinen Büchern soll ich so den aktuellen Benutzer ermitteln
können
wenn er erfolgreich eingeloggt ist.

Oder hab ich da was falsch verstanden?!

Gruß
Andy
VB.Net User
 

Lesen sie die antworten

#1 Samaschke, Karsten
23/10/2007 - 19:25 | Warnen spam
Moinsens,

Danach habe ich das Registrierungsformular auf default.aspx abgelegt und
getestet.
Der User wurde angelegt und in der Datenbanktabelle aspnet_users wird der
Benutzer automatisch angelegt.



Prima!

Jetzt habe ich ein Login Formular auf default.aspx abgelegt mit der
DestinationURL
zur default2.aspx. default.aspx aufgerufen, versuch mit einem falschen Login
klappte nicht, versuch mit dem richtigen Login kam ich zur leeren
default2.aspx.



Zeig mal bitte etwas Code.

Jetzt habe ich in Page_Load der default2.aspx folgendes abgelegt:

Dim User1 As MembershipUser = Membership.GetUser()
If IsNothing(User1) Then
Response.Write("Nicht angemeldet!")
Else
Response.Write("User: " & User1.UserName)
End If

Mit dem Ergebnis, es kommt immer "Nicht angemeldet". User1 ist Nothing, war
warum?! Laut meinen Büchern soll ich so den aktuellen Benutzer ermitteln
können
wenn er erfolgreich eingeloggt ist.



Generell würde ich in der web.config mal unterhalb des
system.web-Bereichs die Default2.aspx schützen:

<location path="Default2.aspx">
<system.web>
<authorization>
<allow users="<Benutzername>" />
<deny users="*" />
</authorization>
</system.web>
</location>

(Habs jetzt nur mal aus dem Kopp geschrieben)

Das sollte dafür sorgen, dass auf die Default2.aspx nur mit dem Benutzer
<Benutzername> zugegriffen werden kann. Wenn der nicht angemeldet ist,
müsstest Du auf die Anmeldeseite zurückgeschickt werden. Ist der
angemeldet, dann kannst Du auch seinen Benutzernamen auslesen.

Ach, noch eins: <authentication mode="Forms">...</authentication> ist in
der Konfiguration gesetzt?

Mit freundlichen Gruessen / Best regards,

Karsten Samaschke
IT-Consulting, IT-Development, IT-Training
Homepage: http://www.ksamaschke.de
Weblog: http://www.karsan.de
Lesen! XML.NET-XML & WebServices mit .NET
http://www.amazon.de/exec/obidos/AS...spextra-21

Ähnliche fragen