Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, авторизация MemberShip провайдер / 2 сообщений из 2, страница 1 из 1
08.12.2009, 10:40
    #36353403
Hug
Hug
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF, авторизация MemberShip провайдер
Всем добрый день.
Не получается организовать авторизацию memberShipProvider на wcf сервисе.
Этот же провайдер удачно выполняет свои функции в asp.net веб приложении.
self-hosted by consoleApplication
конфиг сервиса
Код: 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.
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.
<authentication mode="Forms">
    <forms cookieless="UseCookies" />
  </authentication>

  <system.web.extensions>
    <scripting>
      <webServices>
        <authenticationService enabled="true"/>
      </webServices>
    </scripting>
  </system.web.extensions>
  
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="myBinding">          
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="None" />
            <message clientCredentialType="UserName"/>            
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    
    <services>
      <service name="Pharm.PriceLoader.Service1" behaviorConfiguration="Pharm.PriceLoader.Service1Behavior">
        <endpoint address=""
                  binding="basicHttpBinding"
                  bindingConfiguration="myBinding"
                  contract="Pharm.PriceLoader.IService1"
                  bindingNamespace="http://pharm.com">
          <identity>
            <dns value="localhost"/>
          </identity>          
        </endpoint>
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>
    </services>


    <behaviors>
      <serviceBehaviors>
        <behavior name="Pharm.PriceLoader.Service1Behavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <serviceCredentials>
            <clientCertificate>
              <authentication certificateValidationMode="None" />
            </clientCertificate>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
             membershipProviderName="MySQLMembershipProvider" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>
Выше описан MySQLMembershipProvider.
Почему мне удается из клиента, без установки ClientCredentials.
Вызывать методы, реализующие контракт?
Конфиг клиента
Код: 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.
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
            maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
            useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:3837/Service1.svc" binding="basicHttpBinding"
          bindingConfiguration="BasicHttpBinding_IService1" contract="IService1"
          name="BasicHttpBinding_IService1" />
    </client>
  </system.serviceModel>




Спасибо за ответы
...
Рейтинг: 0 / 0
10.12.2009, 09:08
    #36358210
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF, авторизация MemberShip провайдер
1.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">....

2.
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class service1 : IService1{....}

3.
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" allowCookies="true" />
</basicHttpBinding>
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, авторизация MemberShip провайдер / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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