首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net标识登录重定向强制执行协议(Https)第2部分(.Net 6++)

ASP.Net标识登录重定向强制执行协议(Https)第2部分(.Net 6++)
EN

Stack Overflow用户
提问于 2022-11-30 15:36:22
回答 1查看 29关注 0票数 0

优先参考(.Net框架/ASP.NETMVC):ASP.Net标识登录重定向强制执行协议(Https)

.Net 6+中,这似乎仍然是一个“问题”。在某些情况下,由基础结构构造的返回url会产生http方案/协议,而不是oauth/external (谷歌等)的https。这显然失败了,因为它必须是https

虽然我还没有深入研究,因为我还没有找到它的源代码(还没有?),但这可能是同一个“问题”--在应用程序级别上,它没有“看到”一个https请求(因为SSL是在某个地方卸载的),因此创建的url“匹配”了该方案/协议,从而导致了一个http重定向url。

到头来,不管我的主机有什么托管基础设施/配置,都是我无法控制的。因此,最终目标是强制执行 https (硬代码,跳过/覆盖任何适当的方案/协议检查/评估)。

在我的设置中没有什么特别之处,它在本地/dev (https)测试中运行良好。只有当应用程序最终托管(生产)时才是这样:

在启动program.cs中,这是我唯一用于外部登录的相关代码(以及标识包的脚手架/模板):

代码语言:javascript
复制
builder.Services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<my_db_context>();

builder.Services.AddAuthentication().AddGoogle(goog =>
{
    goog.ClientId = builder.Configuration["GoogleAuthClientId"];
    goog.ClientSecret = builder.Configuration["GoogleAuthClientSecret"];
});

这一问题:

  • 原点是https
  • 发送到Google的重定向uri是http --这将使始终失败。

有人能告诉我如何在.Net 6和更高版本中添加/重写选项的相关docs/source吗?(类似于以前在.Net框架/MVC中的实现)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-03 02:38:03

答案在@Tratcher的评论中:

正式参考:配置ASP.NET核心以使用代理服务器和负载平衡器

本质:ForwardedHeadersMiddleware

就我的具体情况而言:

在某些情况下,可能无法将转发的头添加到代理到应用程序的请求中。如果代理强制所有公共外部请求都是HTTPS,则可以在使用任何类型的中间件之前手动设置该方案: ..。App.Use((上下文,下一步) => { context.Request.Scheme = "https";返回next(上下文);});.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74630363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档