gpt4 book ai didi

c# - 关联失败。在 OIDC 身份验证期间在 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler

转载 作者:行者123 更新时间:2023-12-04 04:11:11 27 4
gpt4 key购买 nike

我用以下组合来解决这个问题:

  • 浏览器隐身模式 (Chrome)
  • 应用程序位于 Azure 应用程序网关之后(如果不是,则没有复制)。基于 Cookie 的亲和力关闭(默认);如果打开,似乎会使复制更频繁地发生。

  • 代码是相当普通的 OIDC authN + cookie。
            services.AddAuthentication(options =>
    {
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
    })
    .AddAzureAd(options => {
    Configuration.Bind("AzureAd", options);
    })
    .AddCookie(p => p.SlidingExpiration = true);
    我按照建议将 X-Forwarded-Proto header 转发到 auth 中间件,因此 redirect_uri 使用正确的协议(protocol)方案。
    代码处理
    我试图处理 OnRemoteFailure() 事件,并重定向到“/Home/AuthRedirect”,这是一个等待 20 秒的匿名页面,然后重定向到“/”(主页)。它有时似乎有效,但并非总是如此。我没主意了。
    解决方法
  • 用户可以再次转到主页并按 F5 直到这工作。似乎每个 F5 都让他们向前迈进了一步,一旦填充了 OpenID cookie,其他一切(openid 完成后我有更多的身份验证,通过 adal.js 使用 AJAX)。
  • 绕过应用程序网关并使用直接服务结构集群 DNS 名称( Not Acceptable ,因为它是 http)。

  • 详情
    System.Exception:关联失败。
    在 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.d__12.MoveNext()
    --- 从先前抛出异常的位置结束堆栈跟踪 ---
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
    在 Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.d__6.MoveNext()
    --- 从先前抛出异常的位置结束堆栈跟踪 ---
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
    在 Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()
    --- 从先前抛出异常的位置结束堆栈跟踪 ---
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
    在 Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()
    --- 从先前抛出异常的位置结束堆栈跟踪 ---
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
    在 Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext()

    image

    最佳答案

    我在 Chrome 中遇到了类似的相关错误,但在 Safari 中没有……事实证明,当使用 SameSite.None 时,您必须使用 https 运行您的自定义站点(甚至是本地主机)。这解决了我所有的相关问题。

    关于c# - 关联失败。在 OIDC 身份验证期间在 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50124498/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com