Я использую модуль WSFederationAuthentication для аутентификации. Я хочу это: после нажатия кнопки выхода из системы, он выдает (удаляет все файлы cookie) и перенаправляет страницу входа. У меня есть этот код для кнопки выхода из системы:Как заставить федеративный выезд перенаправить на страницу входа?
var ls = new LoginStatus();
ls.LogoutAction = LogoutAction.Redirect;
ls.LogoutPageUrl = {some URL, where I have sign out code}
SignOut часть:
Microsoft.IdentityModel.Web.WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
String signoutURL = WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(
authModule.Issuer,
{login Url},
null);
WSFederationAuthenticationModule.FederatedSignOut(
new Uri(signoutURL),
new Uri(authModule.Realm));
Этот код действительно SignOut и удалить куки, но не перенаправляет на страницу входа в систему. Тем не менее, URL-адрес, который пользователи видят, содержит эту часть: & wreply = {loginUrl}
Как я понимаю, параметр wreply не всегда используется.
Вместо того, чтобы использовать метод FederatedSignOut() Я попробовал это один:
System.Net.WebRequest req = System.Net.WebRequest.Create(signoutURL);
System.Net.WebResponse resp = req.GetResponse();
Redirect(LoginUrl);
Но это не на самом деле выйти. Когда пользователь пытается выполнить вход в следующий раз, ему не нужно вводить учетные данные и подписываться автоматически. Я предполагаю, что не все куки-файлы удалены.
Итак, есть мой вопрос, как я могу сделать выход и принудительно перенаправить на страницу входа?
P.S. Я также удаляю файлы cookie FedAuth самостоятельно.
Странно, у меня нет этого печенья. Можно ли назвать ABCSTSSignOut? Кроме того, знаете ли вы формат для этого файла cookie? – Vita1ij