1
我遇到ASP.NET WebForms注销问题。 我为Google和Facebook启用外部登录后无法使用。启用外部登录后,ASP.NET WebForms注销不起作用
单击“注销”按钮不会触发LoginStatusControl
中的OnLoggingOut
事件,因此,未命中后端方法Unnamed_LoggingOut
。点击注销按钮后,它会进行回发并重新加载主页。如果我输入其他页面,然后单击注销按钮,它将起作用并成功注销。
我使用Visual Studio母版页模板和后面的代码,它们没有被修改。
<asp:LoginView runat="server" ViewStateMode="Disabled">
<AnonymousTemplate>
<ul class="nav navbar-nav navbar-right">
<li><a runat="server" href="~/Account/Register">Register</a></li>
<li><a runat="server" href="~/Account/Login">Log in</a></li>
</ul>
</AnonymousTemplate>
<LoggedInTemplate>
<ul class="nav navbar-nav navbar-right">
<li><a runat="server" href="~/Account/Manage" title="Manage your account">Hello, <%: Context.User.Identity.GetUserName() %> !</a></li>
<li>
<asp:LoginStatus runat="server" LogoutAction="Redirect" LogoutText="Log off" LogoutPageUrl="~/" OnLoggingOut="Unnamed_LoggingOut" />
</li>
</ul>
</LoggedInTemplate>
protected void Unnamed_LoggingOut(object sender, LoginCancelEventArgs e) {
Context.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
}