【发布时间】:2020-03-12 08:43:12
【问题描述】:
我最近在 Visual Studio 2019 中创建了一个 ASP.NET Core 3.0 Web 应用程序项目(启用了 Docker,但我认为这不相关),并且在包含 ASP 时似乎无法禁用 HTTPS。 NET 个人用户帐户的身份。每当我在调试器中启动应用程序时,页面都会使用 HTTPS 打开并导航到 HTTP 会再次将我重定向回来。
我尝试创建一个新项目来测试发生了什么,并发现了以下内容:
在创建项目时,我启用了 ASP.NET 身份,以便在我的应用程序中使用本地帐户,我注意到如果我再次通过向导以创建具有相同设置的项目(网络应用程序为单个用户帐户启用身份)取消选中启用 HTTPS 的框的选项显示为灰色。
创建项目后,我尝试通过注释掉相关行来禁用 Startup.cs 中的 HTTPS 重定向中间件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
//app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
并且编辑了launchSettings.json 以尝试让应用在调试时使用 HTTP 而不是 HTTPS 运行,但应用仍然尝试使用 HTTPS 加载。
launchSettings.json之前:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:51767",
"sslPort": 44396
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"HTTPSTest": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44397"
},
"httpPort": 51777,
"useSSL": true,
"sslPort": 44397
}
}
}
launchSettings.json之后:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:51767"
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"HTTPSTest": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5000"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
},
"httpPort": 51777
}
}
}
有人对我接下来可以尝试什么有任何想法吗?我希望应用程序位于终止 SSL 的反向代理之后,所以我认为禁用它是不合理的。
【问题讨论】:
标签: asp.net-mvc ssl asp.net-core https asp.net-identity