.net核心使用https / ssl。我必须重定向吗?

时间:2016-09-06 17:24:56

标签: asp.net-core

我现在在dotnet核心创建了一个网站。该网站现场直播,并在azure中托管。我已经设置了ssl sertificate,并将其绑定到网站。

在web.config或启动中我有什么办法让ssl工作吗?

我无法使用https查看该网站。我必须在启动时重定向吗?

以下是我最终的结果:

在startup.cs中,configure()

app.Use(async (context, next) =>
            {
                if (context.Request.IsHttps)
                {
                    await next();
                }
                else
                {
                    var withHttps = "https://" + context.Request.Host + context.Request.Path;
                    context.Response.Redirect(withHttps);
                }
            });

2 个答案:

答案 0 :(得分:6)

在启动时,您可以将整个网站配置为需要https,如下所示:

EDITED:展示如何在生产中仅要求https,但请注意您可以在开发中轻松使用https

public Startup(IHostingEnvironment env)
{
    ...
    environment = env;

}


public IHostingEnvironment environment { get; set; }

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.Configure<MvcOptions>(options =>
    {

        if(environment.IsProduction())
        {
            options.Filters.Add(new RequireHttpsAttribute());
         }

    });
}

答案 1 :(得分:1)

随着发布Asp NET Core 1.0.0更新您的Startup类:

public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddMvc();

    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new RequireHttpsAttribute());
    });

    // ...
}