Asp.net mvc 使用Azure AD的MVC 5无法注销
我正在使用MVC5,使用OpenIdConnect验证Azure广告 我的应用程序在4个不同的Azure AD应用程序注册下运行;本地主机、开发版本、UAT版本和生产版本 UAT和生产在Azure上同一web服务的不同部署槽下运行 除了Azure中UAT部署槽中的注销功能外,所有功能都可以完美运行。当我单击“注销”时,它会将我带到Microsoft注销“您已注销您的帐户”。在我导航回URL后,它会让我重新登录(我也单击了“不要让我一直登录”) 有没有关于为什么会在单一环境中发生这种情况的想法?除了URL和唯一标识符之外,Azure AD应用程序注册清单几乎完全相同 我正在使用“UseKentorOwinCookieSaver”软件包 注销方法:Asp.net mvc 使用Azure AD的MVC 5无法注销,asp.net-mvc,azure,authentication,azure-active-directory,Asp.net Mvc,Azure,Authentication,Azure Active Directory,我正在使用MVC5,使用OpenIdConnect验证Azure广告 我的应用程序在4个不同的Azure AD应用程序注册下运行;本地主机、开发版本、UAT版本和生产版本 UAT和生产在Azure上同一web服务的不同部署槽下运行 除了Azure中UAT部署槽中的注销功能外,所有功能都可以完美运行。当我单击“注销”时,它会将我带到Microsoft注销“您已注销您的帐户”。在我导航回URL后,它会让我重新登录(我也单击了“不要让我一直登录”) 有没有关于为什么会在单一环境中发生这种情况的想法?除
public void SignOut()
{
HttpContext.GetOwinContext().Authentication.SignOut(
OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType
);
}
Startup.cs:
public void ConfigureAuth(IAppBuilder app)
{ app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseKentorOwinCookieSaver();
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Error/message=" + context.Exception.Message);
return Task.FromResult(0);
},
SecurityTokenValidated = context =>
{
OnAuth();
return Task.FromResult(0);
}
},
AuthenticationMode = AuthenticationMode.Passive
}
);
app.Use((context, next) =>
{
// The function to call...
OnAuth();
return next.Invoke();
});
}
您的用户凭据可能正在缓存。这是Chrome和IE的默认行为,其中一些也是由Microsoft设计的。您想要的单一注销需要在每个应用程序上进行自定义编码。尝试以匿名模式从其他浏览器登录,以查看是否仍然存在此问题
此线程为您的情况提供了一些解决方法 谢谢你的回答,但这不是问题所在。我有相同的问题,无论浏览器,甚至不同的计算机。这个问题一直是第三方在我自己的网络之外进行测试的问题。