Предотвращение междоменного доступа к услугам с помощью WCF - PullRequest
3 голосов
/ 19 августа 2010

У меня есть несколько служб WCF в приложении ASP.NET. Я хочу запретить доступ приложений к этим службам из-за пределов моего домена. Существует ли параметр конфигурации, позволяющий блокировать запросы извне моего домена?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

То, что вы хотите, это аутентификация. Ограничение доступа на основе домена не является безопасным способом аутентификации.

1 голос
/ 19 августа 2010

Если вы не хотите предоставлять сервисы Интернету, вам не следует размещать их на общедоступном сервере. Если вам это действительно нужно, вы должны начать искать способы защиты своих услуг на сетевом уровне. Например, я предполагаю, что ISA-сервер должен иметь возможность блокировать запросы к вашим услугам.

0 голосов
/ 19 августа 2010

РЕДАКТИРОВАТЬ : Это предотвратит доступ всех неаутентифицированных пользователей к вашим услугам.Если вам нужны пользователи в вашем домене, которые не прошли проверку подлинности для доступа к службам, дайте мне знать, и я соответствующим образом обновлюсь.

Используете ли вы проверку подлинности в приложении ASP.NET?

<system.web>
  ...
  <authentication mode="Forms">
    <forms protection="All" defaultUrl="login.aspx" ... />
  </authentication>
  ...
</system.web>

Если это так, ваши файлы .svc будут недоступны до тех пор, пока ваши пользователи не аутентифицируются.Если пользователь, не прошедший проверку подлинности, пытается получить доступ к файлу .svc, он будет перенаправлен на вашу страницу входа в систему.

EDIT (2) : так как вам необходим доступ без проверки подлинности к службамна вашем сайте вы можете подумать о том, чтобы иметь cookie-файл, который отправляется на компьютер пользователя при первом посещении сайта.Файл cookie может использовать дату создания и некоторый секретный ключ для создания хэша, и вы можете проверять хэш на сервере для каждого запроса.Запросы с других сайтов не передадут cookie, и ваша служба вручную проверит, есть ли этот cookie или нет - если его нет, запрос отклоняется.

Если ваши службы WCF имеют ASPСовместимость .NET включена (true) и для AspNetCompatibilityRequirementsMode установлено значение Разрешено или Обязательно, у вас должен быть доступ к HttpContext и файлам cookie. Здесь больше информации о режиме совместимости ASP.NET.

Это может быть не самое подходящее решение, так как я не знаю ваш сценарий и требования.Но, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...