Ich habe eine LoginView in meiner APS.NET-Anwendung mit AnonymousTemplate und LoggedInTemplate. Ich habe LoginStatus-Steuerelement in LoggedInTemplate, aber es funktioniert nicht wie erwartet.ASP.NET LoginStatus innerhalb LoginView löst kein LoggingOut-Ereignis
Hier ist der Code
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate"
DisplayRememberMe="False" PasswordRecoveryUrl="/"
DestinationPageUrl="/">
</asp:Login>
</AnonymousTemplate>
<LoggedInTemplate>
You are logged in as
<asp:LoginName ID="LoginName1" runat="Server"></asp:LoginName>.
<asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="Redirect"
LogoutPageUrl="/" onloggingout="LoginStatus1_LoggingOut" />
</LoggedInTemplate>
</asp:LoginView>
Alle Event-Handler korrekt in Code hinter Datei definiert sind.
Das Problem ist, dass wenn Benutzer sich anmeldet er seinen Benutzernamen mit Logout Link von LoginStatus Kontrolle sehen wird. Ein Klick auf den Abmelde-Link führt den Benutzer zurück zum Anmeldeformular (sowohl Anmelde- als auch Abmeldungsformular gehören zum selben Benutzersteuerelement), aber wenn ich die Seite aktualisiere, ist der Benutzer noch angemeldet.
Ich habe festgestellt, dass wenn ich mich bewege LoginStatus-Steuerelement außerhalb der LoginView und Abmeldeprozess funktioniert wie erwartet. Ich habe auch bemerkt, dass, wenn LoginStatus innerhalb von LoginView ist, es kein Abmeldeereignis auslöst.
Hat jemand irgendwelche Ideen, was könnte das Problem sein?
Ich habe eigentlich genau das gleiche Problem. Ich habe ein LoginStatus-Steuerelement in der LoggedInTemplate und es löst das LoggingOut-Ereignis nicht aus. Ich bin mir nicht sicher, ob es richtig ist, sie so zu nisten. Es scheint, dass das LoginStatus-Steuerelement auf dem Postback (beim Klicken auf den Link Abmelden) nicht länger Teil der Seite ist, daher wird das Ereignis nicht ausgelöst. – e36M3
Seltsam ... Ich habe versucht das gleiche Setup wie Sie auf einer Anwendung in .NET 4.0 Ich habe Maded und ich habe dieses Problem nicht ... Verwenden Sie Ajax oder so etwas auf der Seite? Versuchen Sie dies in einem neuen Projekt zu tun, um zu sehen, ob es das immer tut. Verwenden Sie Visual Studio Devlopement Server oder verwenden Sie IIS? Weiß nicht, ob es etwas ändern kann, aber nur, weil ich versuchen möchte, dass mein Projekt so gut wie möglich aussieht. –
Es stellte sich heraus, dass es sich um ein Sitecore-Problem handelte (obwohl ich nicht erwähnt habe, dass ich das auf Sitecore verwende) und in normalen ASP.NET-Projekten ist das kein Problem. – RaYell