2010-03-30 14 views
7

Kiedy wdrożony mój WCF Data Services do produkcji hosting zacząłem się następujący komunikat o błędzie (lub podobny w zależności od schematów uwierzytelniania są aktywne):Jak wyłączyć systemy uwierzytelniania WCF Data Services

IIS określony uwierzytelniania schematy "Podstawowy, anonimowy", ale wiążący obsługuje tylko specyfikację dokładnie jednego schematu uwierzytelniania. Prawidłowe schematy uwierzytelniania to Digest, Negocjuj, NTLM, Basic lub Anonimowy. Zmień ustawienia usług IIS tak, aby używany był tylko pojedynczy schemat uwierzytelniania .

Podobno usługi danych WCF (WCF w ogóle?) Nie mogą obsłużyć więcej niż jeden schemat uwierzytelniania aktywny.

OK, więc zdaję sobie sprawę, że mogę wyłączyć system uwierzytelniania all-one-one na aplikacji internetowej za pośrednictwem panelu sterowania IIS .... za pośrednictwem żądania wsparcia !!

Czy istnieje sposób określenia pojedynczego schematu uwierzytelniania na poziomie usługi w pliku web.config?

Myślałem, że to może być tak proste jak dokonanie zmiany <system.serviceModel> ale ... okazuje się, że WCF Data Services nie konfigurują się w config WWW. Jeśli spojrzysz na klasę DataService<>, to nie zaimplementujesz [ServiceContract], więc nie możesz jej użyć w <service><endpoint> ... co, jak przypuszczam, będzie potrzebne do zmiany konfiguracji przez XML.

P.S. Nasz host używa II6, ale oba rozwiązania dla IIS6 & IIS7 są doceniane.

Odpowiedz

16

Po pierwsze możliwe jest skonfigurowanie usług danych w pliku konfiguracyjnym sieci. Umowa używana przez usługę DataService nosi nazwę System.Data.Services.IRequestHandler.

Oto, co można zrobić w pliku konfiguracji sieci, aby go skonfigurować.

Na Service Tag elementu system.servicemodel dodać

<service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
    <endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler"> 
    </endpoint> 
</service> 

Gdy trzeba, że ​​nie można rozpocząć konfigurowanie wszystkie sposoby rzeczy za pomocą standardowych elementów konfiguracji WCF.

Po drugie, aby włączyć lub niepełnosprawne metody uwierzytelniania dla określonej usługi w IIS można wykonać następujące czynności:

Na przystawkę dla IIS kliknij prawym przyciskiem myszy plik usług (tj yourservice.svc) i kliknij Właściwości. Po przejściu do właściwości przejdź do zakładki File Security i wybierz przycisk Edit w polu grupy uwierzytelniania i kontroli dostępu. po tym jest tak, jak ustawienie zabezpieczeń katalogów w IIS.

Jako ostatnia sugestia co do rozwiązywania problemów, ważne jest, aby włączyć funkcje denfikacyjne wcf podczas konfigurowania go przy użyciu konfiguracji xml, zapisywanej w WCF, rejestrowanie usługi danych zgodnie z wcf jest bogate i zawiera wiele informacji.

można dowiedzieć się więcej na ten temat na WCF Administration and Diagnostics

Mam nadzieję, że udało mi się pomóc z problemem

daj mi znać jak to wszystko idzie.

Pozdrowienia

Daniel Portella

UPDATE:

Hi Schneider

Aby określić schemat uwierzytelniania w xml przeczytać poniżej

do uwierzytelniania systemu Windows jako przykład

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding name="MyBindingName" > 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <services> 
     <service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler"> 
     </endpoint> 
     </service> 
    </services> 
    </system.serviceModel> 
</configuration> 

Dla innych typów uwierzytelniania sprawdź bibliotekę MSDN dla przykładów

Common Scenarios for security

+0

dzięki. konfiguracja punktu końcowego jest przydatna. teraz mam to, że będę szukał sposobu na określenie schematu auth w xml ... – Schneider

+0

dodaj aktualizację powyżej nadziei ti wyjaśnia, jak skonfigurować uwierzytelnianie dla usługi – dmportella

+0

Gdybym mógł, dałbym ci nagrodę ..! Dziękuję bardzo! – Rashack

Powiązane problemy