【发布时间】:2017-12-28 17:21:12
【问题描述】:
我有一个 ASP .NET MVC Core 应用程序,我正在实现一个非常简单的登录页面,我使用 IdentityUser 让用户使用用户名、电子邮件和密码登录。我也在使用外部身份验证提供程序,例如 Facebook。正常登录/注销正在正常工作。当涉及到 facebook 时,登录工作正常:
public IActionResult FacebookLogin()
{
AuthenticationProperties authProps = new AuthenticationProperties
{
RedirectUri = Url.Action("Index", "Home")
};
return Challenge(authProps, "Facebook");
}
但是当我使用 Facebook 登录时,我无法注销。这是我的注销代码:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
await _signinManager.SignOutAsync();
return RedirectToAction("Index", "Home");
}
无论我做什么,当我使用 Facebook 登录时,我都无法退出 任何帮助表示赞赏。 值得注意的是,我的部分观点如下:
每当我使用 facebook 登录时,IsAuthenticated 标志都会设置为 true,但当我注销时,它永远不会设置为 false
【问题讨论】:
-
那么,当您尝试注销时,您会收到错误消息吗?你有什么事情要做吗?
-
@R.Richards 不,我没有收到任何错误。我有一个部分视图,我使用 User.Identity.IsAuthenticated 在注销或登录按钮之间进行选择。当我尝试注销 Facebook 时,它永远不会设置为 false。
-
This 可能会提供一个或两个解决方法。似乎是一个已知问题。
-
@R.Richards 是的,我在您分享的帖子中选择了最后一个答案,它得到了修复。非常感谢!
标签: c# authentication oauth asp.net-core facebook-login