Как аутентифицировать клиента при использовании веб-службы WCF? - PullRequest
0 голосов
/ 29 июля 2009

Я хочу аутентифицировать клиента при использовании веб-службы. Я вижу свойство в Client, называемое ClientCredential, в котором мы можем передать имя пользователя и пароль. Как я могу передать эту информацию моему веб-сервису WCF и как я могу аутентифицировать идентификатор пользователя и пароль?

1 Ответ

0 голосов
/ 29 июля 2009

Если вы хотите использовать ClientCredential с именем пользователя / паролем, вам необходимо настроить его в app.config на стороне клиента следующим образом - либо использовать транспорт или безопасность сообщений, в зависимости от того, что вам подходит, а затем указать

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="UserNameSecurity">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
      </basicHttpBinding>

и затем вам нужно использовать эту конфигурацию привязки «UserNameSecurity» в вашей конечной точке на клиенте:

    <client>
      <endpoint address="http://localhost:8888/MyService"
                binding="basicHttpBinding" bindingConfiguration="UserNameSecurity"
                contract="IMyService" />

На стороне сервера вам необходимо определить, как аутентифицировать пользователя - либо с помощью Windows (домен Active Directory), либо с помощью поставщиков членства ASP.NET (и связанных с ними пользовательских баз данных):

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

В этом случае ваше имя пользователя / пароль будут проверены по базе данных членства ASP.NET.

Если все это происходит в интрасети, внутри компании, я бы, однако, предпочел бы использовать интегрированную защиту Windows повсюду - ее гораздо проще настраивать и использовать, а также она более надежна и безопасна. Но это работает только внутри компании, внутри корпоративных брандмауэров.

Марк

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