我是天蓝色的新手,这是我的第一篇文章,所以请记住我。
目前,我正在为我的公司开展Azure单点登录。
按照说明Web App Sign In & Sign Out with Azure AD,我使用VS2015使用OWIN OpenId身份验证创建/复制了MVC 5项目。
登录运行良好,但退出不是:
使用用户A登录并退出。没问题。
然后尝试使用其他用户B登录:点击“使用其他帐户”#39;在login.microsoftonline.com并输入用户B的电子邮件地址,但不允许我输入密码,它将我重定向到我的主页,显示用户A已登录!
仅当我关闭并重新打开浏览器(同时使用Chrome和FF)时,才允许我输入用户B的密码并以用户B身份登录。
public class AccountController : Controller
{
public void SignIn()
{
// Send an OpenID Connect sign-in request.
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties {RedirectUri = "/"},
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
public void SignOut()
{
string callbackUrl = Url.Action("SignOutCallback", "Account", routeValues: null,
protocol: Request.Url.Scheme);
Request.GetOwinContext().Authentication.SignOut(
new AuthenticationProperties {RedirectUri = callbackUrl},
OpenIdConnectAuthenticationDefaults.AuthenticationType,
CookieAuthenticationDefaults.AuthenticationType);
}
public ActionResult SignOutCallback()
{
if (Request.IsAuthenticated)
{
// Redirect to home page if the user is authenticated.
return RedirectToAction("Index", "Home");
}
return View();
}
}
我做了很多搜索,但仍然没有运气。
以下是与我完全相同的问题: OWIN - Authentication.SignOut() doesn't remove cookies
@ user3613871所说的对我有很多感官:
Cookie是AppServiceAuthSession Cookie - 不再是AspNet 饼干。因此,注销不再有效。
但我仍然无法找到解决方法。
我可以对azure或我的代码中的设置做些什么来清理"天蓝色的饼干"?
欢迎任何想法,并提前感谢。