在 AspNetCore OpenIdConnect 上设置 redirect_uri

Ped*_*Kid 4 c# asp.net-core

在 .Net 上当我创建一个 Open ID 连接身份验证选项时,我有一个属性来设置 RedirectUri,这甚至按照文档中的建议进行了定义,但 AspNetCore 上不存在此类属性,它会自动设置为当前服务器 EX:,(http://localhost)是有没有办法改变这一点?

试图为此找到解决方案时,我遇到了新的 AspNetCore 身份验证的许多缺点,该产品已准备好还是只是 WIP?

Ped*_*Kid 7

在摆弄这个之后,我发现您必须为该OnRedirectToIdentityProvider事件设置一个事件侦听器。

services.AddOpenIdConnect(options =>
{
    Configuration.Bind("<Json Config Filter>", options);
    options.Events.OnRedirectToIdentityProvider = async context =>
    {
        context.ProtocolMessage.RedirectUri = "<Return URI String>";
        await Task.FromResult(0);
    };
});
Run Code Online (Sandbox Code Playgroud)

  • 这是我的用例。如果我的应用程序托管在处理 HTTPS 的平台上,但我有一个 F5 设备在请求到达应用程序之前卸载 SSL 证书,那么该应用程序在技术上解析为 HTTP,但浏览器显示为 HTTPS。然后中间件检测 HTTP 并重定向到 oidc 为“redirect_uri=http://&lt;my app&gt;”。OIDC 看到它,重定向到 HTTP,设置了 cookie,我的应用程序重定向到 HTTPS,因为 F5 不允许 HTTP,HTTPS 命中,未设置 cookie,因为它设置为 HTTP 而不是 HTTPS,重定向回 OIDC。无限重定向循环。 (5认同)