【问题标题】:Aspnet Core with Adfs 2016 OpenId can't sign out带有 Adfs 2016 OpenId 的 Aspnet Core 无法注销
【发布时间】:2016-10-09 01:02:28
【问题描述】:

我使用面向 Net461 的 Aspnet Core 设置了一个 MVC 项目。身份验证配置为使用 Windows Server 2016 系统中的 Adfs。我设法让登录工作,但是,当我单击退出时,我得到一个页面无法显示的错误。浏览回主页 url 显示用户仍然登录。有什么建议?

【问题讨论】:

  • 可能的相关帖子:stackoverflow.com/q/37338147/6279711
  • 我认为尚未实施注销。
  • 我认为这与使用 adfs 时缺少已知的租户 ID 有关。没有它,我不确定它是否知道如何注销。不知道如何解决这个问题,或者是否有可能。
  • 出现“无法显示”错误的页面的网址是什么?
  • 稍后我会支付屏幕截图,但它是帐户控制器中注销操作的 url。显示的消息提到了我用于 postredirecturl 的任何 url,并说重定向太多。已开发工具中的网络流量会反复调用注销 url,直到发生重定向错误。

标签: asp.net-core asp.net-core-mvc adfs .net-core-rc2


【解决方案1】:

您可能会发现此示例很有用(即使它适用于 Azure ADFS,它也适用于本地安装):https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore

在我的情况下,如下所示的注销操作方法效果很好:

[HttpGet]
public IActionResult SignOut()
{
    var callbackUrl = Url.Action(nameof(SignedOut), "Account", values: null, protocol: Request.Scheme);
    return SignOut(
        new AuthenticationProperties { RedirectUri = callbackUrl },
        CookieAuthenticationDefaults.AuthenticationScheme,
        OpenIdConnectDefaults.AuthenticationScheme);
}

这将在完成后将您重定向到/Account/SignedOut,并且您还需要为您的客户端注册您的/signout-callback-oidc 端点。 OIDC ASP.NET Core 中间件(默认情况下)使用此端点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2018-05-08
    • 2021-08-16
    • 2017-03-10
    • 1970-01-01
    • 2018-11-05
    • 2014-12-04
    相关资源
    最近更新 更多