it-swarm.com.de

ASP.NET Core leitet HTTP an https um

Ich habe in meiner web.config eine Umleitungsregel erstellt, um meine Website von http nach https umzuleiten. Das Problem, das ich habe, ist, dass jeder einzelne Link auf der Website jetzt https ist. Ich habe viele Links zu anderen Websites, die kein SSL haben, und daher bekomme ich Zertifikatfehler. Das habe ich getan:

  <rewrite>
  <rules>
    <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAny">
        <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_Host}/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

Wie kann ich https nur für meine Domain und nicht für alle Links auf meiner Website umleiten?

6
Huby03

Tatsächlich (ASP.NET Core 1.1) gibt es eine Middleware namens Rewrite, die eine Regel für das, was Sie versuchen, enthält.

Sie können es auf Startup.cs wie folgt verwenden:

var options = new RewriteOptions()
    .AddRedirectToHttpsPermanent();

app.UseRewriter(options);
9
Sergio López

In ASP.NET Core 2.2 sollten Sie die Einstellungen Startup.cs verwenden, um http zu https umzuleiten

fügen Sie dies also in ConfigureServices hinzu:

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpsRedirection(options =>
    {
        options.HttpsPort = 443;
    });                           // ===== Add this =====
}

und füge dies in Configure hinzu:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();            // ===== Add this =====
    }

    app.UseHttpsRedirection();    // ===== Add this =====
}

dann genieße es.

5
D.L.MAN

In asp.net Core 2 können Sie unabhängig vom Webserver einen URL-Rewrite verwenden, indem Sie App.UseRewriter in Startup.Configure wie folgt verwenden:

        if (env.IsDevelopment())
        {
            app.UseBrowserLink();
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");

            // todo: replace with app.UseHsts(); once the feature will be stable
            app.UseRewriter(new RewriteOptions().AddRedirectToHttps(StatusCodes.Status301MovedPermanently, 443));
        }
4
victorvartan

asp.net core <2 füge diesen Code einfach in deine startup.cs ein

        // IHostingEnvironment (stored in _env) is injected into the Startup class.
        if (!_hostingEnvironment.IsDevelopment())
        {
            services.Configure<MvcOptions>(options =>
            {
                options.Filters.Add(new RequireHttpsAttribute());
            });
        }

Sie können auch eine weitere Bedingung für die Domäne hinzufügen.

<add input="{HTTP_Host}" negate="true" pattern="localhost" />

Ersetzen Sie "localhost" durch Ihren Domainnamen.

<rewrite>
  <rules>
    <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAny">
        <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
        <add input="{HTTP_Host}" negate="true" pattern="yourdaomainname" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_Host}/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

Für mehr Informationen,

https://www.softfluent.com/blog/dev/2016/12/27/Page-redirection-and-URL-Resriting-mit-ASP-NET-Core

Hoffe das hilft!

1
Anoop H.N

Verwenden Sie in ASP.NET Core 2.1 einfach Folgendes:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();   // <-- Add this !!!!!
    }

    app.UseHttpsRedirection(); // <-- Add this !!!!!
    app.UseStaticFiles();
    app.UseCookiePolicy();

    app.UseMvc();
}
1
Dzianis Yafimau

Sie müssen außerdem den folgenden Code in .net Core 2.1 hinzufügen 

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();

    app.UseMvc();
}

und den folgenden Teil in der Dienstkonfiguration

       services.AddHttpsRedirection(options =>
       {
        options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
        options.HttpsPort = 5001;
        });
0
Nico