Переадресация выхода на ASP.NET не работает - PullRequest
3 голосов
/ 13 марта 2012

У меня есть тестовый сайт, на котором я сделал 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 там, он сразу же вызывает страницу выхода. Я в замешательстве, так как это не поведениечто я ожидал и не задокументировано.

Пожалуйста, помогите.

Спасибо!

1 Ответ

2 голосов
/ 13 марта 2012

Я не уверен, что это то, что вы ищете, но если вы просто хотите запустить некоторый код после выхода пользователя из системы, используйте этот метод http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.onloggedout.aspx

Он вызывается, когда пользователь нажимаеткнопка выхода из системы и была завершена.Вы можете поместить свой код там, а затем перенаправить на страницу выхода из системы, если хотите.

Примечание. Существует также этот метод, который можно использовать, чтобы убедиться, что пользователь выполняет определенные условия при выходе из системы, и даже отменить регистрацию.из.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.onloggingout.aspx

Надеюсь, это поможет.

...