Вопрос по security, web-services, c#, iis – Также стоит отметить, что вы можете настроить управление доступом по IP-адресам для каждого веб-приложения из IIS. Я использовал оба подхода в разное время, и все сводится к тому, как вы хотите вести список разрешенных IP-адресов.

2

у традиционный веб-сервис ASMX, используя C # с .Net 2.0 для развертывания на IIS. Веб-сервис будет развернут в среде общего хостинга, где каждый клиент имеет свою собственную копию приложения, расположенную в отдельном виртуальном каталоге (я знаю, я знаю - это устаревшее приложение). В каждом виртуальном каталоге будет отдельная копия веб-службы.

Поскольку веб-сервис потенциально может выполнять некоторые мощные функции, я бы хотел ограничить доступ к нему определенными IP-адресами. Делать это в брандмауэре не очень хороший вариант, так как ограничивается только веб-сервис, а не остальная часть веб-сайта - и он находится на уровне каждого виртуального каталога.

Могу ли я программно прочитать IP-адрес запрашивающей стороны и сравнить его со списком, чтобы я мог отклонить вызовы из других адресов? Есть ли серьезные подводные камни в этом?

Спасибо

Ваш Ответ

1   ответ
4

Да, вы можете сделать это легко.

[WebMethod]
public bool IsAlive()
{
     string callingAddress = HttpContext.Current.Request.UserHostAddress;
     return (callingAddress == allowedAddress);
}

Единственными подводными камнями являются ведение списка IP-адресов.

Также стоит отметить, что вы можете настроить управление доступом по IP-адресам для каждого веб-приложения из IIS. Я использовал оба подхода в разное время, и все сводится к тому, как вы хотите вести список разрешенных IP-адресов.

Похожие вопросы