Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF и аутентификация. Простой вопрос / 4 сообщений из 4, страница 1 из 1
25.08.2010, 13:14
    #36810289
Anton.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF и аутентификация. Простой вопрос
Здравствуйте!
Сделал простой WCF сервис с методом Test(), поднял под IIS, все ок.

В другой проект добавил ServiceReference. Дергаю метод сервиса таким образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
using(var client = new MyServiceClient())
                {
                    client.ClientCredentials.UserName.UserName = "test_name";
                    client.ClientCredentials.UserName.Password = "test_pass";
                    string result = client.Test();
                    ...
                }

Вопрос: как в сервисе внутри метода Test() получить эти самые имя и пароль?
...
Рейтинг: 0 / 0
25.08.2010, 17:41
    #36811374
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF и аутентификация. Простой вопрос
Просто от балды - System.ServiceModel.ServiceSecurityContext.Current не то?
...
Рейтинг: 0 / 0
26.08.2010, 11:33
    #36812445
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF и аутентификация. Простой вопрос
если вам надо аунтификацию сделать, с использованием логина и пароля, то надо делать примерно так

server config
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<system.serviceModel>
<bindings>
      <wsHttpBinding>
        <binding name="UserNameTransportSecurity" >
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="None" />
            <message clientCredentialType="UserName" algorithmSuite="Default"/>
          </security>
        </binding>
      </wsHttpBinding>


<behaviors>
      <serviceBehaviors>
        <behavior name="UserNameAuthentication">
          <serviceCredentials>
            <userNameAuthentication
                userNamePasswordValidationMode="Custom"
                customUserNamePasswordValidatorType="Namespace.CredentialValidator, Assembly"/>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

<services>
      <service name="Namespace.Service" behaviorConfiguration="UserNameAuthentication">
        <endpoint binding="wsHttpBinding" bindingConfiguration="UserNameTransportSecurity"
          contract="Namespace.IService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" name="MetadataBinding" />
      </service>
    </services>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class CredentialValidator : UserNamePasswordValidator
    {
        public override void Validate(string userName, string password)
        {
            if(userName != "test " || password != "test")

            try
            {
                using (var connection = new SqlConnection(s.ToString()))
                {
                    connection.Open();
                }
            }
            catch (SqlException)
            {
                throw new SecurityTokenException("Invalid Username or Password.");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
...
Рейтинг: 0 / 0
26.08.2010, 11:36
    #36812456
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF и аутентификация. Простой вопрос
последний квоут не ппраильно вставился (.

[src][public class CredentialValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if(userName != "test" || password != "test")
throw new SecurityTokenException("Invalid Username or Password.");
}
}/SRC]

и к сайту прикрутить сертификат.

Тогда будет шифровать ваши креденшиалы, и будет проверять пароль и логин, это случай если сервис используется через интернет, если же локально то можно без транспортной безопасности и никаких https не надо.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF и аутентификация. Простой вопрос / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]