Аутентификация WCF с использованием basicHttpBinding и пользовательского UserNamePasswordValidator - PullRequest
2 голосов
/ 26 июля 2010

Мой первый вопрос: возможно ли вообще использовать пользовательский UserNamePasswordValidor с basicHttpBinding?

У меня есть веб-сайт asp.net, использующий проверку подлинности с помощью форм и пользовательский поставщик членства.Я понимаю, что мог бы использовать встроенный System.Web.ApplicationServices.AuthenticationService для аутентификации моего клиента (приложение WPF), но мне не нужны два вызова службы (один для службы аутентификации, один для логики).

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

        var service = new MyServiceClient();
        service.ClientCredentials.UserName.UserName = "username";
        service.ClientCredentials.UserName.Password = "password";

        MessageBox.Show(service.SayHello());

Я видел, как это работает с wsHttpBinding, но в идеале хотел бы протестировать без SSL-сертификата.

В качестве альтернативы, возможно ли использовать AuthenticationService из другой службы WCF?

Чтобы прояснить, что я имею в виду в отношении службы аутентификации, я не хочу иметь 2 вызова службы, а именно:

            if (authService.Login("username", "password"))
            // then call my service

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

Спасибо, Бен

Ответы [ 2 ]

4 голосов
/ 15 августа 2010

проверьте привязку ClearUserName: http://webservices20.blogspot.com/2008/11/introducing-wcf-clearusernamebinding.html Это должно решить вашу проблему.

2 голосов
/ 17 декабря 2010

Я использую UserNamePasswordValidator вместо basicHttpBinding в нескольких моих текущих проектах.Это прекрасно работает;однако, как упомянул Бретт Роби в комментариях, вам нужно установить режим безопасности на Message или TransportWithMessageCredentials, чтобы валидатор был вызван.Эти режимы безопасности требуют SSL через.

Короче говоря - да, вы можете через basicHttpBinding;однако только с SSL.Удаление режима безопасности и SSL удаляет проверки учетных данных от вызова.

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