Можно ли использовать клиентские сертификаты с HTTPS-запросами от Windows Phone 7? - PullRequest
3 голосов
/ 23 декабря 2010

Мне нужно вызвать службу на основе REST из Windows Phone 7 .

Служба принимает запрос только при соблюдении следующих условий:

  • Запрос должен произойти по HTTPS / SSL
  • Запрос должен пройти проверку подлинности с помощью клиентского сертификата X509

Я не контролирую службу, поэтому не могу изменить требования к аутентификации.

На полной основе мы можем сделать что-то вроде этого:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.ClientCertificates.Add(accessCertificate);

Однако свойство ClientCertificates недоступно в Silverlight 4, и ни один из классов X509 из пространства имен System.Security.Cryptography.X509Certificates не доступен.

Действительно ли невозможно делать запросы HTTPS на основе клиентских сертификатов из Windows Phone 7?

Ответы [ 3 ]

1 голос
/ 23 декабря 2010

Клиентские сертификаты не поддерживаются сторонним WP7 SDK.

Подтверждение здесь.

Проблемы с аутентификацией при сертификации клиента на WP7

Хотя сертификаты можно установить на устройство по электронной почте (на которые есть ссылка в решении интеграции exhcange), ваше приложение их не использует.

1 голос
/ 23 декабря 2010

Существует только 2 способа установить сторонние сертификаты на устройство, и ни один из них в настоящее время не может быть выполнен с помощью кода:

Установка сертификатов через Windows® Internet Explorer®
Сертификат может быть размещены на веб-сайте и сделаны доступны пользователям через доступный для устройства URL, который они могут используйте для загрузки сертификата. когда пользователь заходит на страницу и нажимает сертификат, он открывается на устройстве. Пользователь может проверить сертификат, и если они решат продолжить сертификат установлен на устройство.

Установка сертификатов по электронной почте
Установщик сертификата на Windows Phone 7 поддерживает .cer, .p7b, и .pfx файлы. При установке сертификаты по электронной почте, убедитесь, что ваш почтовые фильтры не блокируют файлы .cer. Сертификаты, которые отправляются по электронной почте появляются как вложения в сообщения. Когда сертификат получен, пользователь может нажмите, чтобы просмотреть содержимое, а затем нажмите, чтобы установить сертификат. Как правило, когда личность сертификат установлен, пользователь предложено ввести пароль, защищает его.

Вам нужно будет заставить пользователя выполнить одно из этих действий, прежде чем приложение будет работать с сертификатом.

Из Windows Phone 7 и сертификаты_FINAL_121610.pdf

0 голосов
/ 24 декабря 2010

Таким образом, вы можете использовать oAuth для аутентификации и передать токен в заголовок запроса.Если вы посмотрите на acs.codeplex.com, вы увидите, как это делается с помощью системы Azure ACS.Я понимаю, что вы, возможно, не используете Azure, но справочное приложение может помочь.Я бы также искал oAuth и Windows Phone 7, я также нашел несколько примеров.

Что касается SSL, вы можете сделать это через браузер без каких-либо проблем.Вы также можете открыть любой URL-адрес https с помощью HttpWebRequest и т. Д.

...