Настроить launchSettings.json для SSL в отладке - Код ядра Core/Visual Studio ASP.NET
Я следую этому учебнику, чтобы добавить аутентификацию Facebook в мое веб-приложение.
Как часть процесса, я пытаюсь включить SSL в свой проект, но все, что я нашел, связано с обновлением параметра в диалоговом окне "Свойства проекта" в Visual Studio, которое недоступно мне с помощью кода Visual Studio на моем Mac. Я попытался обновить значения в файле launchSettings.json вручную, но мне не повезло.
Как обновить launchSettings.json(или другие файлы проекта) в коде Visual Studio, чтобы включить SSL во время отладки?
Ответы
Ответ 1
Я сделал следующие правки для запуска Settings.json на окнах, и он добился цели. В настоящее время это единственный способ сделать это в Visual Studio 2017 RC.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:50183/",
"sslPort": 44318
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:44318",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"corePostgresIdentity": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:44318"
}
}
}
Ответ 2
Когда вы запускаете приложение ASP.NET Core в VS Code, вы запускаете его с Kestrel, а не IIS. Вам необходимо настроить Kestrel для включения SSL вручную, как показано ниже (в Program.cs):
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000, listenOptions =>
{
listenOptions.UseHttps("localhost.pfx", "yourPassword");
});
})
.UseUrls("https://localhost:5000")
.Build();
Как создать самозаверяющий сертификат описано в этой замечательной статье.
Ответ 3
Обычно, когда вы изменяете свойства для своего проекта, изменения сохраняются в launchSettings.json
. Поэтому вам нужно изменить launchSettings.json
, как показано ниже:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:8837/",
"sslPort": 0 //Add ssl port here
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:8837",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
Ответ 4
Если вы не хотите изменять свой файл Program.cs только для отладки в VS Code, вы также можете настроить URL-адреса в файле launch.json. Вам необходимо указать URL в свойстве env. Как сказал xneg, для этого вам нужно создать самоподписанный сертификат.
Вы можете настроить URL-адрес http и https (SSL)
"configurations":[
{
...
"env": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:5002;https://localhost:5003"
},
...
}
Документация для Kestrel помогла выяснить это.