我的APS.NET应用程序中有一个LoginView与AnonymousTemplate和LoggedInTemplate.我已经把LoginStatus控件放在LoggedInTemplate里面,但是没有按预期的方式工作.
这是代码
<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中时,它不会引发注销事件.
有谁有任何想法可能是什么问题?
解决方法
我在这里遇到同样的问题. loginview控件外面的loginstatus控件可以根据需要工作.看起来很愚蠢,它不能在loginview控件中工作.
编辑**
好的,所以我在Sitecore里遗漏了这个页面.显然Sitecore以某种方式介入loginview控件,并且必须添加到web.config中的以下部分:
<sitecore>
<rendering>
<typesThatShouldNotBeExpanded>
<type>System.Web.UI.WebControls.LoginView</type>
</typesThatShouldNotBeExpanded>
</rendering>
</sitecore>
Thank some other guy…
-Victor F.
