【发布时间】:2012-03-13 17:11:07
【问题描述】:
我有一个测试网站,我在其中设置了 Loginstatus
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="Account/Logout.aspx"/> ]
但是,当我单击屏幕上的注销时.. 它转到此 url,实际上并没有调用注销页面。
“http://localhost/TestWebSite/Account/Login.aspx?ReturnUrl=%2fTestWebSite%2fAccount%2fLogout.aspx”
我试图让它调用一些逻辑来注销并删除我为我的自定义会员提供程序拥有的数据库行。这个逻辑放在logout.aspx.cs的页面加载中
Session.RemoveAll();
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
但它当然不会被调用... 当然,如果我在那里再次使用 ReturnUrl 登录,它会立即调用注销页面。 我很困惑,因为这不是我预期的行为,也没有记录。
请帮忙。
谢谢!
【问题讨论】:
-
你确定它没有加载注销页面,然后立即重定向到登录页面,使用注销页面作为返回url?如果您删除重定向,或者改为重定向到另一个页面,会发生什么情况?
-
我在 Page_Load 上放了一个断点,但它没有命中它。如果我离开该断点并使用链接上的 returnurl 再次登录,它确实会到达断点。所以我很确定它没有点击页面。
-
我下载了 Fiddler...我知道发生了什么...当它调用 Logout.aspx 它返回一个 302(对象移至此处)并立即使用 returnurl 进入登录页面。 . 有什么想法吗?
-
(可能是一个愚蠢的问题:)当您进入注销页面时您是否已登录?如果没有,并且应用程序被配置为需要身份验证,ASP.NET 将使用您尝试访问的页面(在本例中为注销页面)的返回 url 自动将您带到登录页面而不会遇到断点。跨度>
标签: asp.net asp.net-membership customization