在 AspNetCore OpenIdConnect 上设置 redirect_uri

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

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


子衿沉夜
浏览 327回答 2
2回答

慕码人2483693

我正在更改架构如下public static void AddCookieAuthentication(this IServiceCollection services, IConfiguration configuration)    {        _configuration = configuration;        services.AddAuthentication(options =>            {                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;            })            .AddCookie()            .AddOpenIdConnect(options =>            {                options.TokenValidationParameters.AuthenticationType = IdentityConstants.ApplicationScheme;                options.ResponseType = "code";                options.MetadataAddress = configuration["Authentication:Cognito:MetadataAddress"];                options.ClientId = configuration["Authentication:Cognito:ClientId"];                options.ClientSecret = configuration["Authentication:Cognito:ClientSecret"];                options.GetClaimsFromUserInfoEndpoint = true;                options.Scope.Add("openid");                options.Scope.Add("profile");                options.Scope.Add("email");                options.Scope.Add("aws.cognito.signin.user.admin");                options.Events = new OpenIdConnectEvents                {                    // this makes signout working                    OnRedirectToIdentityProviderForSignOut = OnRedirectToIdentityProviderForSignOut,                    OnRedirectToIdentityProvider = OnRedirectToIdentityProvider,                };            });    }    private static Task OnRedirectToIdentityProvider(RedirectContext ctx)    {        ctx.Options.Events.OnRedirectToIdentityProvider = async context =>        {            **context.ProtocolMessage.RedirectUri = context.ProtocolMessage.RedirectUri.Replace("http:", "https:");**            await Task.FromResult(0);        };        return Task.CompletedTask;    }
打开App,查看更多内容
随时随地看视频慕课网APP