Я реализовал единый вход в существующем приложении C# Asp. Net MVC 4.5 и поэтому использовал промежуточное ПО Owin и OpenIdConnectAuthentication. Проверка подлинности и авторизация работают нормально, но теперь у меня возникла следующая проблема:
- Я вхожу в свое приложение, используя AzureAD в качестве поставщика удостоверений
- Я вхожу в Office365 на другой вкладке браузера
- Я выхожу из своего приложения - меня перенаправляют к провайдеру удостоверений, а также автоматически выхожу оттуда
- Office365 автоматически выходит из другой вкладки
Да не настроил единый выход (поэтому я не указал URL-адрес выхода из системы в регистрации приложения и ни в одном коде конфигурации), но я все еще выхожу из Office365. Это раздражает клиента, поскольку он всегда использует Outlook365 в браузере.
Как я могу предотвратить автоматический выход пользователя из Office365.
Вот упрощенный код моей конфигурации OpenIdConnect :
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthorizationCodeReceived = (context) =>
{
// ... my sign in logic ...
context.OwinContext.Response.Redirect(homeUrl);
return Task.FromResult(0);
},
},
AuthenticationType = OpenIdConnectAuthenticationDefaults.AuthenticationType
});
А вот как я выхожу из приложения:
context.GetOwinContext().Authentication.SignOut(new AuthenticationProperties { RedirectUri = redirectUrl }, OpenIdConnectAuthenticationDefaults.AuthenticationType);