Я собираюсь внедрить SSO, используя локальную ADFS 4.0 со службой федерации. Я выполнил код для входа в систему и он работает нормально, но я хочу развить функцию единого выхода из системы.
Когда я выхожу из системы с одного веб-сайта, пользователь должен автоматически выйти из всех настроенных приложений. на сервере ADFS.
Ниже приведен мой код:
StartUp.Auth FIle
string adfs = ConfigurationManager.AppSettings["AdfsMetadataEndPoint"];
string realm = ConfigurationManager.AppSettings["Wtrealm"];
string reply = ConfigurationManager.AppSettings["Wreply"];
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
CookieManager = new SystemWebCookieManager()
});
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
MetadataAddress = adfs,
Wtrealm = realm,
Wreply = reply,
AuthenticationMode = AuthenticationMode.Passive
});
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
выход из системы Действие:
public void LogOff()
{
var owinContext = this.Request.GetOwinContext();
var authProperties = new AuthenticationProperties();
authProperties.RedirectUri = new Uri(this.HttpContext.Request.Url, new UrlHelper(this.ControllerContext.RequestContext).Action("Login")).AbsoluteUri;
owinContext.Authentication.SignOut(authProperties);
WSFederationAuthenticationModule.FederatedSignOut(
new Uri("https://xxxxxxx/adfs/ls/?wa=wsignoutcleanup1.0"),
new Uri("https://localhost:44320/Home/Index"));
//AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
//return RedirectToAction("Index", "Home");
}