Как получить ASP.NET Web API (самостоятельно) для прослушивания * только * localhost?
Я следую примеру здесь для самостоятельной службы веб-API ASP.NET. Однако при указании "localhost" в качестве хоста в базовом адресе он переводится в "+" (что означает "все доступные" ).
var baseAddress = new Uri("http://localhost:13210");
var configuration = new HttpSelfHostConfiguration(baseAddress);
configuration.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new {id = RouteParameter.Optional});
using (var server = new HttpSelfHostServer(configuration))
{
server.OpenAsync().Wait();
stop.WaitOne();
server.CloseAsync().Wait();
}
Я действительно хочу, чтобы мой хост привязался только к "localhost" - к нему будет доступен доступ только с одного компьютера, и я не хочу обходиться с помощью списков ACL.
Как настроить веб-API, чтобы не переписывать "localhost" на "+"?
Ответы
Ответ 1
Установите для свойства HostNameComparisonMode
значение Exact:
var config = new HttpSelfHostConfiguration("https://localhost/api/");
config.HostNameComparisonMode = HostNameComparisonMode.Exact;
Смотрите эту статью для получения дополнительной информации о HostNameComparisonMode