加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – 在开发中的ASP.NET核心项目上启用/禁用SSL

发布时间:2020-12-16 04:00:04 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET Core项目中,我在生产中使用SSL,所以我在Startup中: public void ConfigureServices(IServiceCollection services) { services.AddMvc(x = { x.Filters.Add(new RequireHttpsAttribute()); }); // Remaining code ...}public void Configure(IAppl
在ASP.NET Core项目中,我在生产中使用SSL,所以我在Startup中:

public void ConfigureServices(IServiceCollection services) {
  services.AddMvc(x => {
    x.Filters.Add(new RequireHttpsAttribute());
  });  
  // Remaining code ...
}

public void Configure(IApplicationBuilder builder,IHostingEnvironment environment,ILoggerFactory logger,IApplicationLifetime lifetime) {
  RewriteOptions rewriteOptions = new RewriteOptions();
  rewriteOptions.AddRedirectToHttps();
  builder.UseRewriter(rewriteOptions);
  // Remaining code ...
}

它在生产中工作正常但在开发中没有.我想要:

>在开发中禁用SSL;
>使SSL在开发中工作,因为当前配置不是.
我是否需要在本地计算机上设置任何PFX文件?
我正在研究多个项目,这可能会产生问题?

解决方法

您可以使用IConfigureOptions< T>配置服务.接口.

internal class ConfigureMvcOptions : IConfigureOptions<MvcOptions>
{
    private readonly IHostingEnvironment _env;
    public ConfigureMvcOptions(IHostingEnvironment env)
    {
        _env = env;
    }

    public void Configure(MvcOptions options)
    {
        if (_env.IsDevelopment())
        {
            options.SslPort = 44523;
        }
        else
        {
            options.Filters.Add(new RequireHttpsAttribute());
        }
    }
}

然后,将此类添加为单例:

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    var builder = services.AddMvc();
    services.AddSingleton<IConfigureOptions<MvcOptions>,ConfigureMvcOptions>();
}

关于SSL点,您可以使用IIS Express轻松使用SSL(source)

Configure SSL in SSL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读