2010-03-30 7 views
7

zu deaktivieren, wenn ich meine WCF Data Services zur Produktion eingesetzt Hosting begann ich die folgende Fehlermeldung (oder eine ähnliche Abhängigkeit davon, welche Auth Systeme aktiv sind) zu erhalten:Wie Authentifizierungsschemata für WCF Data Services

IIS angegebenen Authentifizierungs Schemata 'Basic, Anonymous', aber die Bindung unterstützt nur die Spezifikation von genau ein Authentifizierungsschema. Gültige Authentifizierungsschemas sind Digest, Verhandeln, NTLM, Basic oder Anonym. Ändern Sie die IIS-Einstellungen, sodass nur ein einziges Authentifizierungsschema mit verwendet wird.

Anscheinend WCF Data Services (WCF im Allgemeinen?) Kann nicht mit mehr als einmal Authentifizierungsschema aktiv sein.

OK, also bin ich mir bewusst, dass ich alles-außer-One-Authentifizierungsschema in der Webanwendung über IIS-Systemsteuerung deaktivieren kann .... über eine Supportanfrage !!

Gibt es eine Möglichkeit, ein einzelnes Authentifizierungsschema auf einer Pro-Service-Ebene in der Datei web.config anzugeben?

Ich dachte, das so geradlinig sein könnte eine Änderung <system.serviceModel> wie machen aber ... es stellt sich heraus, dass WCF Data Services konfiguriere sich nicht in der Web-Config. Wenn Sie sich die Klasse DataService<> ansehen, implementiert sie keine [ServiceContract], daher können Sie nicht auf die <service><endpoint> ... verweisen, die ich für die Änderung ihrer Konfiguration über XML benötigen würde.

P.S. Unser Host verwendet II6, aber beide Lösungen für IIS6 & IIS7 geschätzt.

Antwort

16

Erstens ist es möglich, Data Services in der Web-Konfigurationsdatei zu konfigurieren. Der vom DataService verwendete Vertrag heißt System.Data.Services.IRequestHandler.

Hier ist, was Sie in der Web-Konfigurationsdatei tun können, um es zu konfigurieren.

Auf dem Service-Etikett des System.ServiceModel Element fügen Sie die

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

Sobald Sie, dass es haben, können Sie alle Arten der Sache Elemente unter Verwendung der Standard-WCF-Konfiguration starten zu konfigurieren.

Zweitens deaktiviert Authentifizierungsmethoden für einen bestimmten Dienst in IIS Sie Folgendes tun können aktivieren oder: in

Auf dem Snap für IIS Recht Service-Datei klicken (das heißt yourservice.svc) und klicken Sie auf Eigenschaften. Sobald Sie in den Eigenschaften sind, gehen Sie zur Registerkarte "Dateisicherheit" und wählen Sie im Gruppenrahmen "Authentifizierung und Zugriffssteuerung" die Schaltfläche "Bearbeiten". Danach wird die Verzeichnissicherheit in IIS eingerichtet.

Als letzten Vorschlag, wie jede Fehlersuche geht es wichtig ist, die wcf-Diagnosen zu aktivieren, während Sie es mit der XML-Konfiguration konfigurieren, in WCF geschrieben wird, Data-Service-Protokollierung ist wie wcf ist reich und sehr informativ.

Sie mehr darüber auf WCF Administration and Diagnostics

herausfinden können, ich hoffe, ich konnte Ihnen mit Ihrem Problem kenne ich

lassen helfen, wie es geht.

Grüße

Daniel Portella

UPDATE:

Hallo Schneider

Um das Authentifizierungsschema in der unten

lesen xml angeben

Für Windows-Authentifizierung als Beispiel

Für andere Arten der Authentifizierung überprüfen Sie bitte die MSDN-Bibliothek für Beispiele

Common Scenarios for security

+0

Dank. Die Endpunktkonfiguration ist nützlich. jetzt habe ich, dass ich nach einer Weise suche, Authschema im xml zu spezifizieren ... – Schneider

+0

ein Update über Hoffnung hinzufügen ti erklärt, wie man die Authentifizierung für den Service einrichtet – dmportella

+0

Wenn ich könnte, würde ich Ihnen Kopfgeld geben.! Vielen Dank so viel! – Rashack

Verwandte Themen