Аутентификация Silverlight WCF (Справка о переходе с WPF на Silverlight)
-
23-08-2019 - |
Вопрос
У меня есть существующее рабочее приложение WPF, в котором я внедрил свою собственную пользовательскую аутентификацию для серверной службы WCF.Когда я получаю доступ к этой службе из WPF, настройте ServiceProxy следующим образом:
proxy.ClientCredentials.UserName.UserName = "test";
proxy.ClientCredentials.UserName.Password = "pass";
и поскольку я использую HTTPS, uid / pwd безопасен.
В Silverlight 2 такого нет .Объект ClientCredentials на прокси-сервере.Единственный вариант, который я нашел, - это добавить два строковых параметра к КАЖДОМУ предоставляемому WCF методу для Uid / Pwd.По-моему, это звучит как безумие, должен же быть способ получше, не так ли?
Решение
К сожалению, Silverlight 2 поддерживает только базовую привязку HttpBinding, что означает, что он не поддерживает ClientCredentials.
У вас есть 2 варианта::1.Как вы упомянули, передавая имя пользователя и пароль при каждом запросе.2.используя asp.net аутентификацию и включите asp.net режим совместимости в ваших сервисах.
-- N.B TransportSecurityWithMessageCredentials, о которых я упоминаю ниже, похоже, не подходит для SL3, поэтому единственными вариантами являются 2 выше для SL2 и SL3
Silverlight 3 улучшает эту историю с помощью TransportSecurityWithMessageCredentials, и вы можете узнать больше об этом в блоге Silverlight Web Services Team (дал бы ссылку на него, но, видимо, поскольку я новый пользователь, мне не разрешено 0
HTH