LoginView中的ASP.NET LoginStatus不会触发LoggingOut事件

RaY*_*ell 10 asp.net loginview loginstatus

我的APS.NET应用程序中有一个带有AnonymousTemplate和LoggedInTemplate的LoginView.我已将LogStatus控件放在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>
Run Code Online (Sandbox Code Playgroud)

所有事件处理程序都在代码隐藏文件中正确定义.

问题是,如果用户登录,他将从LoginStatus控件中看到带有注销链接的用户名.单击注销链接会将用户返回到登录表单(登录和注销表单都是同一用户控件的一部分)但如果我刷新页面,则用户仍然会登录.

我注意到如果我在LoginView之外移动LoginStatus控件,那么注销过程将按预期工作.我还注意到,当LoginStatus在LoginView中时,它不会引发注销事件.

有没有人有任何想法可能是什么问题?

VFe*_*ein 2

我在这里遇到了同样的问题。登录视图控件外部的登录状态控件按需要工作。它在登录视图控件中不起作用似乎很愚蠢。

编辑** 好的,所以我忽略了我正在 Sitecore 中构建此页面。显然,Sitecore 以某种方式干扰了登录视图控件,必须将其添加到 web.config 中的以下部分:

  <sitecore>
    <rendering>
      <typesThatShouldNotBeExpanded>
        <type>System.Web.UI.WebControls.LoginView</type>
      </typesThatShouldNotBeExpanded>
    </rendering>
  </sitecore>
Run Code Online (Sandbox Code Playgroud)

谢谢另外一个人...

-维克多·F.