我有一个LoginView在我的APS.NET应用程序中使用AnonymousTemplate和LoggedInTemplate。我已将LoginStatus控件放入LoggedInTemplate中,但不能按预期工作。ASP.NET LoginStatus里面的LoginView不会触发LoggingOut事件
这里的所有事件处理程序代码中正确定义代码隐藏文件
<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>
。
问题是,如果用户登录,他将从LoginStatus控件的登出链接看到他的用户名。点击注销链接后,用户返回登录表单(登录和注销表单都是同一用户控件的一部分),但是如果刷新页面,用户仍然登录。
我注意到如果我移动LoginView之外的LoginStatus控件,然后注销过程按预期工作。我也注意到,当LoginStatus在LoginView中时,它不会引发一个登出事件。
有没有人有任何想法可能是什么问题?
我其实有完全相同的问题。我在LoggedInTemplate中有一个LoginStatus控件,它不会触发LoggingOut事件。我不确定是否可以像这样嵌套它们。看起来在回发(当单击注销链接时),LoginStatus控件不再是页面的一部分,因此它不会触发事件。 – e36M3 2010-10-14 17:18:30
奇怪......我已经尝试了与.NET 4.0中的应用程序完全相同的设置,我已经完成了maded,并且我没有这个问题......您是使用Ajax还是类似于页面上的东西?尝试在一个新项目上做这件事,看看它是否总是这样做。您是使用Visual Studio Devlopement Server还是使用IIS?不知道它是否可以改变某些东西,但这只是因为我想尽可能让我的项目看起来像你的。 – 2011-03-03 21:34:28
原来是Sitecore问题(尽管我没有提到我在Sitecore上使用它),而在正常的ASP.NET项目中这不是问题。 – RaYell 2011-08-28 07:51:16