Как защитить поддерживающий Silverlight веб-сервис WCF с SSL?

После очередной недели отладки я разобрался! Оказывается, есть дополнительный тип работника, gevent_pywsgi. Использование этого типа работника увеличило примерно в 10 раз, до уровня, который я бы посчитал приемлемым.

Мое тестирование не показало различий в производительности между sync работником и gevent работником, поэтому я все еще не уверен, что там происходит, или каково намерение gevent рабочего типа.

7
задан John Saunders 20 August 2009 в 18:26
поделиться

3 ответа

in the ServiceReferences.ClientConfig file of the Silverlight client app that the "Binding" tag only allows basicHttpBinding and NOT wsHttpBinding. Does this mean that you can not secure a Silverlight-Enabled WCF Service?

No, it doesn't mean that. You can have a basicHttpBinding and still assign transport-level security (HTTPS with SSL) to it. That shouldn't be a problem.

Marc

PS: Many one of those links gives you more insight and the proverbial "AHA!" :-)

3
ответ дан 6 December 2019 в 14:09
поделиться

Есть три ключевых мест, которые я настраиваю для использования https в моих собственных приложениях.

Web.config

В теге поведения включите эту строку:

<serviceMetadata httpsGetEnabled="true"/>

Для конечной точки MEX убедитесь, что вы используете протокол https:

<endpoint address="mex" binding="mexHttpsBinding"
          contract="IMetadataExchange" />

Создайте пользовательская привязка. Важная часть - транспортная безопасность:

  <basicHttpBinding>
    <binding name="myServicesBinding">
      <security mode="Transport"/>
    </binding>
  </basicHttpBinding>

Вы также можете включить обычные средства авторизации:

<authorization>
  <allow users="?"/>
  <deny users="*"/>
</authorization>

Silverlight

На стороне Silverlight либо укажите ServiceReference на теперь уже защищенную службу, либо установите соединения вручную в коде. файл ServiceReferences.ClientConfig должен содержать информацию о безопасности:

<security mode="Transport"/>

И версия кода выглядит так:

BasicHttpBinding b = new BasicHttpBinding(BasicHttpSecurityMode.Transport);

Возможно, есть более сложные вещи, которые можно сделать, но этого должно хватить для большинства людей.

11
ответ дан 6 December 2019 в 14:09
поделиться

WS * не поддерживается в Silverlight - просто измените URL-адрес в конфигурации клиента на https: // url - это все, что вы можете сделать

-2
ответ дан 6 December 2019 в 14:09
поделиться
Другие вопросы по тегам:

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