我使用OAuth连接到QBO(Quickbooks Online)应用。 QBO拥有自己的Auth Server和Auth Client。
我正在使用单点登录。因此,在成功连接到QBO后,我使用以下代码设置Cookie:
var id = new ClaimsIdentity(claims, "Cookies");
Request.GetOwinContext().Authentication.SignIn(id);
我的Startup.cs包含:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies",
AuthenticationMode = AuthenticationMode.Passive,
LoginPath = new PathString(Paths.LoginPath)
});
要注销我用过:
HttpContext.GetOwinContext()
.Authentication
.SignOut(HttpContext.GetOwinContext().Authentication.GetAuthenticationTypes().
Select(o => o.AuthenticationType).ToArray());
但注销后,User.Identity仍然有效。我尝试过不同的解决方案,但没有成功。
有什么想法吗?
答案 0 :(得分:0)
当您致电SignOut
时,它会删除Cookie以使用户身份无效,但User
仍会在该请求期间进行身份验证。
您可以将[Authorize]
属性设置为将用户注销的操作,以便将其重定向到登录页面。