Как применять HTTPS в ASP.NET Core - PullRequest
0 голосов
/ 15 апреля 2019

Я установил LetsEncrypt , он также работает как в http, так и в https, но я пытаюсь принудительно установить перенаправление HTTPS в ASP.NET Core как docs.microsoft , я использую asp.net core 2.2 и iis 10.0.14393.0 . Вот моя конфигурация конвейера:

 services.Configure<CookiePolicyOptions>(options =>
         {

             options.CheckConsentNeeded = context => true;
             options.MinimumSameSitePolicy = SameSiteMode.None;
         });
        services.AddAuthentication(option =>
        {
           ..

        }).AddCookie(option =>
        {
            option.AccessDeniedPath = "/Account/Denied";
            option.LoginPath = "/Account/Login";
            ...


        });
        services.AddHttpsRedirection(options =>

        {

            options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
            options.HttpsPort = 443;

        });
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

и в методе Configure:

  if (env.IsDevelopment())
        {

            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
        app.UseHttpsRedirection();
        app.UseAuthentication();
        app.UseStaticFiles(new StaticFileOptions()
        {
            OnPrepareResponse = context =>
            {
                context.Context.Response.Headers["Cache-Control"] =
                        "private, max-age=43200";

                context.Context.Response.Headers["Expires"] =
                        DateTime.UtcNow.AddDays(30).ToString("R");
            }
        });
        app.UseCookiePolicy();
        app.Use(async (context, next) =>
        {
            // For GetTypedHeaders, add: using Microsoft.AspNetCore.Http;
            context.Response.GetTypedHeaders().CacheControl =
                new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
                {
                    Public = true,
                    MaxAge = TimeSpan.FromDays(30)
                };
            context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
                new string[] { "Accept-Encoding" };

            await next();
        });
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

но я получаю это сообщение об ошибке в Firefox:

Страница не перенаправляет должным образом

где я ошибаюсь?

1 Ответ

0 голосов
/ 15 апреля 2019

Вы пробовали очистить кеш браузера?Если вы не очищаете кеш после изменений, браузер обычно использует старый редирект из кеша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...