Задать вопрос

Ограничение на доступ к WCF сервису

Всем привет.

Есть Windows Phone приложение, которое получает данные с WCF сервиса.
Само приложение просто удобное отображение данных. Вся логика вынесена в сервис.

Как разрешить получение данных с WCF только для нашего приложения?

Необходимо исключить возможность использования нашего сервиса сторонними приложениями.
Вариант с регистрацией и последующей аутентификацией каждого пользователя не рассматриваю.
  • Вопрос задан
  • 3007 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
1. Создаете секретную строку в вашем приложении
2. Добавляете к ней рандом-цифру через разделитель (для того, чтобы последовательность символов была разной после шифрования)
3. Шифруете любым алгоритмом из System.Security.Cryptography (например класс RijndaelManaged) и отсылаете
4. Шлете на WCF
5. Раскодируете выбранным вами алгоритмом и смотрите ваша строка или нет.
6. Профит
Ответ написан
kin9pin
@kin9pin
Наверняка в вашей службе есть что-то типа:

ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(behavior);
serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex");


Этот код включает обмен метаданных. Если его убрать, то другим хотя бы будет сложнее получить описание функций WCF-службы через «Add Service Reference»
Ответ написан
yamaoto
@yamaoto
la programmeur
Использовать сертификаты для проверки доступа.

httpBinding.Security.Message.ClientCredentialType=BasicHttpMessageCredentialType.Certificate;
serviceHost.Credentials.ClientCertificate.Authentication.CertificateValidationMode=X509CertificateValidationMode.Custom;
serviceHost.Credentials.ClientCertificate.Authentication.CustomCertificateValidator = new CertValidator();

где CertValidator реализует X509CertificateValidator
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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