在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 ...
}
Run Code Online (Sandbox Code Playgroud)
它在生产中工作正常但在开发中没有.我想要:
mez*_*tou 12
您可以使用该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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,将此类添加为单例:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
var builder = services.AddMvc();
services.AddSingleton<IConfigureOptions<MvcOptions>, ConfigureMvcOptions>();
}
Run Code Online (Sandbox Code Playgroud)
关于SSL点,您可以使用IIS Express轻松使用SSL(源代码)
小智 5
只需评论这一行:
rewriteOptions.AddRedirectToHttps();
或者在新版本的.Net core中关于Startup.cs的注释:
app.UseHttpsRedirection();
小智 -3
使用#if !DEBUG,如下所示:
public void ConfigureServices(IServiceCollection services) {
services.AddMvc(x => {
#if !DEBUG
x.Filters.Add(new RequireHttpsAttribute());
#endif
});
// Remaining code ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9391 次 |
| 最近记录: |