首页
学习
活动
专区
工具
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

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

4.5K20

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

    66410

    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

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

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

    1.9K50

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

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

    1.4K40

    ASP.NET Core Cookie 认证

    和AddCookie添加Authentication服务,第二步指定app必须使用Authentication&Authorization中间件,最后在需要 cookie 授权的控制器和操作上应用 [Authorize...== "Admin")) { //… } 接下来,对用户进行授权,使用用户信息创建一个Cookie,构造一个ClaimsPrincipal序列化用户信息并储到Cookie var claims = new...方法设置Cookie的期限,下面代码以滑动方式启用cookie的超时时间: builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme...URL,因此应用程序将用户导向到登录页面并且添加用户请求的地址,用户尝试打开的url被添加到浏览器查询字符串中,一旦用户成功授权,应用程序从查询字符串中读取return url,并跳转到这个url 当我们在浏览器中打开...secured地址,页面会跳转到https://localhost:7262/Home/Login?

    22710
    领券