Как работать с аутентификацией WCF для приложений SilverLight 4 и WPF - PullRequest
7 голосов
/ 04 февраля 2011

Мне нужен совет, чтобы иметь дело с аутентификацией WCF для приложения, ориентированного как на SilverLight, так и на клиентский интерфейс WPF.

РЕДАКТИРОВАТЬ: На самом деле мне нужен режим аутентификации - сочетание имени пользователя / пароля.*

Кроме того, в будущем приложение должно работать в полностью автономном режиме (и клиент (WPF), и сервер на одном компьютере в одном приложении).Так я не должен использовать WCF в этом случае?

РЕДАКТИРОВАТЬ: еще одно дополнение, в будущем снова приложение должно работать в режиме клиент-сервер локальной сети (но без IIS), как игра,Так я не должен использовать WCF в этом случае?Или любой другой вариант?

Ответы [ 5 ]

1 голос
/ 21 ноября 2011

Вы можете реализовать свой собственный валидатор, унаследовав от UserNamePasswordValidator и установив customUserNamePasswordValidatorType в своей конфигурации поведения, например:

<behaviors>
            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceCredentials>
                        <userNameAuthentication userNamePasswordValidationMode="Custom"
                                                customUserNamePasswordValidatorType="MyNamespace.MyValidator, MyNamespace" />
                    </serviceCredentials>
                </behavior>
            </serviceBehaviors>
        </behaviors>

На стороне клиента вы можете установить комбинацию имени пользователя и пароля в свойстве ClientCredentials.UserName.UserName / Password вашего сервиса.

0 голосов
/ 03 ноября 2011

Преимущество использования WCF состоит в том, что если вы хотите представить службу в сети или во внешнем мире, вы можете просто изменить / добавить некоторые дополнительные конфигурации без каких-либо изменений в коде.Сценарий, когда клиент и сервер находятся на одной машине или в сети, абсолютно приемлем, и простой способ - открыть две конечные точки, отвечающие вашим требованиям в одной услуге.

Вы также можете обойтись с одной конечной точкой, но использование разных конечных точек с различным механизмом привязки уменьшает ваши накладные расходы во время аутентификации.Пример: Когда вы находитесь на одной машине, вы можете использовать привязку net: pipe или net: tcp. Когда вы находитесь в домене, вы можете использовать net: tcp или httpbinding.

Производительность отличается при использовании разных привязок.

0 голосов
/ 11 февраля 2011

IIS не требуется для размещения службы WCF. Посмотрите на эту ссылку для различных вариантов хостинга. Также WCF позволяет общаться по различным протоколам. Посмотрите эту ссылку , чтобы получить сводную информацию о вариантах хостинга, основанных на операционной платформе и протоколе связи.

0 голосов
/ 29 июня 2011

Существует несколько методов, которые можно использовать для аутентификации служб WCF (сертификаты X509, токен, имя пользователя / пароль и аутентификация windows. Выбор важен правильный тип учетных данных.

Предполагая (поскольку вы используете silverlight & WPF), что установка выполняется в среде Windows, вы можете использовать проверку подлинности Windows. Чтобы включить проверку подлинности Windows, выполните указанные шаги и разместите службу в IIS.

Надеюсь, это поможет и удачи!

0 голосов
/ 04 февраля 2011

Проверьте это решение, используя службу аутентификации. Мне понравилось, и я решил использовать его для трехплатформенного приложения (web / SL / WPF)

http://msdn.microsoft.com/en-us/library/system.web.applicationservices.authenticationservice.aspx

Перейдите по ссылкам для примеров реализации.

Таким образом, вы можете положиться на классическую пользовательскую реализацию ASP .NET MembershipProvider (даже в автономном клиенте).

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