我最近在 Visual Studio 2019 中创建了一个 ASP.NET Core 3.0 Web 应用程序项目(启用了 Docker,但我认为这不相关),并且在包含 ASP.NET Identity 时似乎无法禁用 HTTPS个人用户帐户。每当我在调试器中启动应用程序时,页面都会使用 HTTPS 打开,并且导航到 HTTP 会再次将我重定向回来。
我尝试创建一个新项目来测试发生了什么,并发现了以下内容:
创建项目时,我启用了 ASP.NET Identity 以便在我的应用程序中使用本地帐户,并且我注意到,如果我再次通过向导来创建具有相同设置的项目(启用了 Identity 的 Web 应用程序)对于个人用户帐户)取消选中启用 HTTPS 框的选项似乎呈灰色。
创建项目后,我尝试禁用 HTTPS 重定向中间件Startup.cs
通过注释掉相关行:
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
BEFORE:
{
"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
AFTER:
{
"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 终止反向代理后面,因此我认为禁用此功能并不是不合理的。