首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有AddCookie的AddAuthentication重定向到http,而不是https

问题描述: 带有AddCookie的AddAuthentication重定向到http,而不是https。

回答: 在ASP.NET Core中,使用AddAuthentication方法配置身份验证时,可以通过AddCookie方法添加Cookie身份验证。然而,有时候可能会遇到一个问题,即重定向到HTTP而不是HTTPS。

这个问题通常是由于应用程序的HTTPS配置不正确导致的。为了解决这个问题,我们需要确保应用程序正确配置了HTTPS,并且在重定向时使用HTTPS。

首先,确保应用程序的HTTPS配置正确。这包括在应用程序的启动文件(如Program.cs)中配置HTTPS重定向和HTTPS证书。

在ASP.NET Core中,可以使用UseHttpsRedirection方法将HTTP请求重定向到HTTPS。在ConfigureServices方法中添加以下代码:

代码语言:txt
复制
services.AddHttpsRedirection(options =>
{
    options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
    options.HttpsPort = 443;
});

这将配置应用程序将HTTP请求重定向到HTTPS,并将重定向状态码设置为307 Temporary Redirect。

另外,还需要确保应用程序正确配置了HTTPS证书。可以使用ASP.NET Core的Kestrel服务器来配置HTTPS证书。在应用程序的启动文件(如Program.cs)中,可以使用以下代码配置Kestrel服务器的HTTPS证书:

代码语言:txt
复制
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseKestrel(options =>
        {
            options.Listen(IPAddress.Any, 443, listenOptions =>
            {
                listenOptions.UseHttps("path/to/https/certificate.pfx", "certificate-password");
            });
        })
        .UseStartup<Startup>();

这将配置Kestrel服务器使用指定的HTTPS证书。

一旦应用程序的HTTPS配置正确,重定向到HTTPS的问题就应该解决了。如果仍然遇到重定向到HTTP的问题,可能是由于其他中间件或配置引起的。可以逐个排查其他中间件和配置,以确定问题的根本原因。

总结: 确保应用程序正确配置了HTTPS,并使用UseHttpsRedirection方法将HTTP请求重定向到HTTPS。同时,确保应用程序正确配置了HTTPS证书,使用Kestrel服务器来配置HTTPS证书。如果问题仍然存在,可以逐个排查其他中间件和配置,以确定问题的根本原因。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云SSL证书:https://cloud.tencent.com/product/ssl
  • 腾讯云CDN加速:https://cloud.tencent.com/product/cdn
  • 腾讯云Web应用防火墙:https://cloud.tencent.com/product/waf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何将HTTP重定向Apache上HTTPS

HTTPSHTTP安全版本,其中“ S ”端代表“ Secure ”。 使用HTTPS ,您浏览器和Web服务器之间所有数据都是加密,因此是安全。...本教程将向您展示如何在Linux中将HTTP重定向Apache HTTP服务器上HTTPS 。...在为您域设置Apache HTTPHTTPS重定向之前,请确保已安装SSL证书,并在Apache中启用mod_rewrite 。 有关如何在Apache上设置SSL更多信息,请参阅以下指南。...将HTTP重定向Apache虚拟主机上HTTPS 另外,要强制所有Web流量使用HTTPS ,您还可以配置虚拟主机文件。...通常,启用SSL证书时,虚拟主机配置有两个重要部分; 第一个包含非安全端口80配置 。 第二个是安全端口443 。 要将HTTP重定向您网站所有页面的HTTPS,首先打开相应虚拟主机文件。

4.4K20

dotnet core 不自动从 https http 302 重定向

https 链接返回 302 状态码,且跳转链接是一个 http 链接,那将不会自动跳转 默认情况下,咱可以通过设置 HttpClient HttpClientHandler 从而设置 AllowAutoRedirect...https 链接,且此链接返回 302 跳转到一个 http 链接上,那使用 HttpClient 将不会自动跳转,而是返回 302 状态码,且在 Header Location 上写明了后台返回...http 链接 这是 dotnet core 设计如此,可以通过本文参考看到大佬们讨论 由于从 https 跳转到 http 在大部分时候来说,都是十分诡异行为。...{ // 理论上不能为空吧,抛个异常还是返回就看你业务 } } 默认行为禁止 https...->http 跳转,是一个很合理设计。

1.5K30
  • 使用Identity Server 4建立Authorization Server (3)

    我们现在要做就是, 用户点击About之后, 页面重定向Authorization Server, 用户填写完信息之后登陆Authorization Server之后再重定向回到该网站(MvcClient...使用Implicit flow时, 首先会重定向Authorization Server, 然后登陆, 然后Identity Server需要知道是否可以重定向回到网站, 如果不指定重定向返回地址的话...这个地址将会在openid connect 中间件设置合适cookies, 以确保配置正确性. PostLogoutRedirectUris是登出之后重定向网址....有可能发生情况是, 你登出网站时候, 会重定向Authorization Server, 并允许从Authorization Server也进行登出动作....你需要从authorization server获得它, 用来验证你身份, 知道你已经登陆了. id_token不是你用来访问api. access_token是用来访问api.

    1.3K60

    .net core 认证与授权(一)

    前言 .net core web并不是一个非常新架构,很多文章提及认证与授权这个过程,但是一般都会提及到里面的方法怎么用不是模拟一个怎样过程,所以我打算记录自己理解。 什么是认证?...但是访问: https://localhost:44350/Home/Secret 看到效果还是: https://localhost:44350/Home/Index 这是为啥呢?不是认证了吗?...其实: services.AddAuthentication("CookieAuth").AddCookie("CookieAuth", config => { config.Cookie.Name...得到错误是没有一个认证方案,然后写了添加了cookie验证,然后下面的是去实现把证书装配到cookie中。 验证机制生效了,证书也前台了。...也就是我们说: services.AddAuthentication("CookieAuth").AddCookie("CookieAuth", config => { config.Cookie.Name

    63910

    ASP.NET Core身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证

    SaveTokens用于在Cookie中保存IdentityServer中令牌(稍后将需要)。...@claim.Type @claim.Value } 如果您现在使用浏览器访问HomeController,将会导致重定向...你应该看到重定向IdentityServer登录页面。 ? 成功登录后,用户将看到同意画面。 在这里,用户可以决定是否要将他身份信息发布客户端应用程序。...可以使用客户端对象上RequireConsent属性以每个客户端为基础关闭同意询问。 ? 最后浏览器重定向客户端应用程序,该应用程序显示了用户声明。 ?...("Cookies"); await HttpContext.SignOutAsync("oidc"); } 这将清除本地cookie,然后重定向IdentityServer。

    3.4K30

    IdentityServer Topics(5)- 使用第三方登录

    cookies作用 外部认证处理程序上一个选项称为SignInScheme,例如: services.AddAuthentication() .AddGoogle("Google", options..."; }) 登录方案指定将暂时存储外部认证结果cookie处理程序名称,例如 由外部提供商发送身份单元。 这是必要,因为在完成外部认证过程之前,通常会有几个重定向。..."; }) 您也可以注册您自己自定义Cookie处理程序,如下所示: services.AddAuthentication() .AddCookie("YourCustomScheme...returnUrl)) { return Redirect(returnUrl); } return Redirect("~/"); 状态,URL长度和ISecureDataFormat 当重定向到外部提供商登录时...OpenID Connect身份验证处理程序的确提供了一个可扩展点,用于将状态存储在服务器中,不是在请求URL中。

    2.9K30

    .net core实践系列之SSO-同域实现

    如有需要调试demo,可把SSO项目部署为域名http://sso.cg.com/,Web1项目部署为http://web1.cg.com,http://web2.cg.com,可以减少配置修改量 源码地址...流程描述 未登录状态访问业务Web应用会引导认证中心。 用户在认证中心输入账号信息通过登录后,认证中心会根据用户信息生成一个具有安全性token,将以任何方式持久化在浏览器。...因此对AddCookie设置属性DataProtectionProvider或者TicketDataFormat加密方式进行重写实现。...源码地址:https://github.com/aspnet/DataProtection) 再通过之前初始化好CookieOption再AppendResponseCookie方法进行设置Cookie...最后通过Events.RedirectToReturnUrl进行重定向ReturnUrl。

    1.7K20

    用最简单方式在ASP.NET Core应用中实现认证、登录和注销

    应用主页需要登录之后才能访问,所以针对主页匿名请求会被重定向登录页面。在登录页面输入正确用户名和密码之后,应用会自动重定向应用主页,该页面会显示当前认证用户名并提供注销链接。...在上面提供代码片段中,我们调用AuthenticationBuilder对象AddCookie扩展方法完成了针对Cookie认证方案注册。...SignInAsync方法定义,RenderLoginPageAsync方法用来呈现登录页面。...有了ClaimsPrincipal对象,我们只需要将它作为参数调用HttpContext上下文SignInAsync扩展方法即可完成登录,该方法最终会自动重定向初始方法路径,也就是我们主页。...如下面的代码片段所示,我们定义在Program中SignOutAsync扩展方法正是调用这个方法来注销当前登录状态。我们在完成注销之后将应用重定向主页。

    3.5K30

    在 ASP.NET Core 应用中使用 Cookie 进行身份认证

    AddAuthentication 方法来定义系统认证策略 ?...中间件 HTTP 管道中,实现对于网站认证启用,这里需要注意,因为是先认证再授权,所以中间件添加顺序不可以颠倒 public class Startup { public void Configure...; }); } } 此时,当我们再次访问系统时,因为没有经过认证,自动触发了重定向系统登录页面的操作,而这里重定向跳转页面就是上文代码中配置 LoginPath 属性值...当我们需要在一个独立类库中获取存储用户信息时,我们需要进行如下操作 第一步,在 Startup.ConfigureServices 方法中注入 HttpContextAccessor 服务 public...Nuget 引用 Microsoft.AspNetCore.Http,之后就可以在具体类中通过注入 IHttpContextAccessor 来获取到用户信息,当然,也可以在此处实现登录、登出方法

    1.3K40

    .NET Core微服务之基于IdentityServer建立授权与验证服务(续)

    而我们想要效果是当User第一次点击About,页面重定向AuthorizationServer (localhost:5000),当用户登录验证授权之后,再重定向该网站。...此后一定时间范围内第二次,第三次点击,都不再需要再重定向AuthorizationServer,而是直接读取保存token。...implicit这个flow(详细内容可以阅读ddrsqlIdentityServer4之Implicit(隐式许可)),它主要用于客户端应用程序(主要指基于javascript应用),它允许客户端程序重定向...RedirectUris是指登录成功之后需要重定向地址(这里这个位置在MvcClient中),PostLogoutRedirectUris是指登出之后需要重定向地址。...和API Service Client设置不同就是在AllowedScopes中给它增加了OpenId和Profile,因为我们为MvcClient设定是oidc不是bearer模式。

    1.8K50

    《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(上)

    第 8 章 认证和安全 8.1 认证 认证(Authentication)是指验证用户身份过程,授权(Authorization)是验证一个已经通过认证用户是否有权限做某些事过程 常见 HTTP...需要注意是,它很容易被解码,因此不应该在 Token 中包含敏感信息,如用户密码等 接下来,通过 JwtBearer 认证中间件实现基于 Token 认证 添加nuget Install-Package...services.AddAuthentication(defaultScheme: JwtBearerDefaults.AuthenticationScheme); 在 Startup 类中使用服务...,例如 services.AddAuthentication(defaultScheme: JwtBearerDefaults.AuthenticationScheme) .AddCookie() .AddJwtBearer...(); 可以添加多个相同类型认证方式,但指定名称必须不同 services.AddAuthentication() .AddCookie("cookie1") .AddCookie("cookie2

    60610
    领券