powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / настроить безопасность WCF сервиса
3 сообщений из 3, страница 1 из 1
настроить безопасность WCF сервиса
    #37636048
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для того чтоб разобраться, сделал тестовое приложение (проект приложен к сообщению)
приложения общаются друг с другом (аля Remoting)
теперь нужно авторизовать клиентов
вот конфиги, с которыми все работает без включения безопасности
сервер
Код: xml
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.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfLibrary.ServerImplementation" >
        <endpoint
         address="net.tcp://localhost:3315/TestServer"
         binding="netTcpBinding"
         contract="WcfLibrary.IServerService"
         bindingConfiguration="InsecureTcp" />
      </service>
    </services>

    <bindings>
      <netTcpBinding>
        <binding name="InsecureTcp">
          <security mode="None"></security>
          <readerQuotas maxStringContentLength="152428800"
          maxArrayLength="152428800"
          maxBytesPerRead="4096"/>
        </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>

</configuration>


клиент
Код: xml
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.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    
    <client>
      <endpoint
        name="WcfLibrary.ServerImplementation"
        address="net.tcp://localhost:3315/TestServer"
        binding="netTcpBinding"
        contract="WcfLibrary.IServerService"
        bindingConfiguration="InsecureTcp"
          />
    </client>

    <bindings>
      <netTcpBinding>
        <binding name="InsecureTcp">
          <security mode="None" />
          <readerQuotas maxStringContentLength="152428800"
          maxArrayLength="152428800"
          maxBytesPerRead="4096"/>
        </binding>
      </netTcpBinding>
    </bindings>
    
  </system.serviceModel>
</configuration>




в гугле смог выяснить что для простой авторизации нужно сделать класс
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public class CustomValidator : UserNamePasswordValidator
    {
        public override void Validate(string userName, string password)
        {
            if ((userName != "user1") || (password != "123"))
            {
                throw new SecurityTokenException("Validation Failed!");
            }
        }
    }


в описании службы указать behavior
Код: xml
1.
2.
<service name="WcfLibrary.ServerImplementation"
               behaviorConfiguration="ServerBehavior">


далее
Код: xml
1.
2.
3.
4.
5.
6.
<bindings>
      <netTcpBinding>
        <binding name="InsecureTcp">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>


и описать behavior на который ссылались выше, указав класс который должен проверять логин/пароль
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<behaviors>
      <serviceBehaviors>
        <behavior name="ServerBehavior">
          <serviceMetadata httpGetEnabled="false" httpGetUrl=""/>
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceCredentials>
            <userNameAuthentication
              userNamePasswordValidationMode="Custom"
              includeWindowsGroups="false"
              customUserNamePasswordValidatorType="WcfLibrary.CustomValidator, WcfLibrary" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>


но с такими параметрами не запускается даже "сервер"... и не знаю как дополнить конфиг клиента (((
все что попадается в гугле - ориентировано под сертификаты, либо web (там другие секции, не пойму куда что тулить)
тут же нужен "простой" вариант

подскажите как нужно изменить эти конфиги, либо ткните носом в подобные примеры
WinForms, C#, .NET 4
...
Рейтинг: 0 / 0
настроить безопасность WCF сервиса
    #37637826
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчик,

ошибки покажи.
...
Рейтинг: 0 / 0
настроить безопасность WCF сервиса
    #37638190
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,
попытка запустить сервер



я там за сертификат ничего не указывал (
конфиг
Код: xml
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <!--<service name="WcfLibrary.ServerImplementation" >
        <endpoint
         address="net.tcp://localhost:3315/TestServer"
         binding="netTcpBinding"
         contract="WcfLibrary.IServerService"
         bindingConfiguration="InsecureTcp" />
      </service>-->
      <service name="WcfLibrary.ServerImplementation"
               behaviorConfiguration="ServerBehavior">
        <endpoint
         address="net.tcp://localhost:3315/TestServer"
         binding="netTcpBinding"
         contract="WcfLibrary.IServerService"
         bindingConfiguration="InsecureTcp" />
      </service>
    </services>

    <bindings>
      <netTcpBinding>
        <binding name="InsecureTcp">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>
          <readerQuotas maxStringContentLength="152428800"
          maxArrayLength="152428800"
          maxBytesPerRead="4096"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <!--<bindings>
      <netTcpBinding>
        <binding name="InsecureTcp">
          <security mode="None"></security>
          <readerQuotas maxStringContentLength="152428800"
          maxArrayLength="152428800"
          maxBytesPerRead="4096"/>
        </binding>
      </netTcpBinding>
    </bindings>-->

    <behaviors>
      <serviceBehaviors>
        <behavior name="ServerBehavior">
          <serviceMetadata httpGetEnabled="false" httpGetUrl=""/>
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceCredentials>
            <userNameAuthentication
              userNamePasswordValidationMode="Custom"
              includeWindowsGroups="false"
              customUserNamePasswordValidatorType="WcfLibrary.CustomValidator, WcfLibrary" />
          </serviceCredentials>
     
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>


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


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