Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core .net核心使用https/ssl。我必须重定向吗?_Asp.net Core - Fatal编程技术网

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

Asp.net core .net核心使用https/ssl。我必须重定向吗?,asp.net-core,Asp.net Core,我现在用dotnet core创建了一个网站。该站点位于live in,并托管在azure中。我设置了ssl证书,并将其绑定到站点 在web.config或startup中是否需要执行任何操作才能使ssl正常工作 我看不到使用https的网站。我必须在启动时重定向吗 以下是我的结论: 在startup.cs中,配置() 在启动时,您可以将整个站点配置为需要https,如下所示: 已编辑:演示如何在生产中仅需要https,但请注意,您也可以轻松地在开发中使用https public Startup

我现在用dotnet core创建了一个网站。该站点位于live in,并托管在azure中。我设置了ssl证书,并将其绑定到站点

在web.config或startup中是否需要执行任何操作才能使ssl正常工作

我看不到使用https的网站。我必须在启动时重定向吗

以下是我的结论:

在startup.cs中,配置()


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

已编辑:演示如何在生产中仅需要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());
         }

    });
}
公共启动(IHostingEnvironment环境)
{
...
环境=环境;
}
公共IHostingEnvironment环境{get;set;}
public void配置服务(IServiceCollection服务)
{
...
配置(选项=>
{
if(environment.IsProduction())
{
options.Filters.Add(新的requireHttpAttribute());
}
});
}

使用Asp NET Core 1.0.0版更新您的启动类:

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

    services.AddMvc();

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

    // ...
}
public void配置服务(IServiceCollection服务)
{
// ...
services.AddMvc();
配置(选项=>
{
options.Filters.Add(新的requireHttpAttribute());
});
// ...
}

太棒了。我可以检查站点是否在localhost上运行,或者是否在ConfigureServices()中运行吗?我更新了答案,以说明如何仅在产品中启用它。在启动时,尝试将逻辑基于主机名(如localhost)是不理想的,因为这是每个请求的事情,而不是启动的事情,当您使用https浏览站点时,您可以使用配置设置或显示的环境-您会得到什么样的响应?(您看到了什么,http状态码等)
public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddMvc();

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

    // ...
}