2016-02-28 82 views
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); 
} 

回答

0

原来,当我在我的本地机器上运行的应用程序的问题,只存在 - 本地主机/仍然没有解释为什么/。 我已经在appharbor部署了应用程序,登录和注销都正常工作。