2012-04-03 9 views
0

Kürzlich hat sich die Firma, für die ich arbeite, entschieden, DotNetOpenAuth zu verwenden, um Benutzer zu autorisieren, die einen bestimmten Webservice nutzen möchten, den ich entwickelt habe.Verwendung eines anderen Servicevertrags für DotNetOpenAuth

Jetzt habe ich einen SOAP-Webservice und ich habe auch die OAuthConsumer und OAuthServiceProvider-Beispiele von DotNetOpenAuth ausgeführt. Der Webservice, der Verbraucher und der Dienstanbieter werden alle auf IIS7 ausgeführt, jeder auf seiner eigenen Website.

Meine Frage ist, wie kann ich eine Methode aus meinem Webservice-Vertrag, anstatt eine Methode von DotNetOpenAuth IDataApi Datenkontrakt aufrufen?

Muss ich eine neue Version der DataApi-Klasse erstellen? In welchem ​​Fall sollte diese neue Klasse erweitert werden (anstatt IDataApi)?

Vielen Dank!

Antwort

1

IDataApi ist einfach die [ServiceContract] in der Probe. Sie sollten stattdessen die Schnittstelle verwenden, die Ihren Dienst beschreibt. Basiert dieser SOAP-Service auf WCF? Wenn ja, verwende einfach deine Schnittstelle.

Wenn Sie nicht mit WCF verwenden, dann wird das Framework, das Sie verwenden, bestimmen, wie Sie in sein Autorisierungssystem einhängen und vielleicht Ihre Implementierung radikal von der Probe unterscheiden. Aber DotNetOpenAuth damit zu verwenden, sollte immer noch funktionieren.

+0

Danke, das brachte mich in die richtige Richtung, aber leider bin ich noch nicht ganz da. Der Dienst ist in der Tat ein SOAP-Dienst, der auf WCF basiert und auf IIS7 ausgeführt wird. Der Dienst und der Dienstanbieter werden auf Port 810 ausgeführt, und der Consumer befindet sich auch auf IIS 7 aber auf Port 811. Wenn ich den Code lokal debuggen, erhalte ich den folgenden Fehler: 'Die Nachricht konnte nicht verarbeitet werden, da die Aktion' http: //websrv.hszuyd.nl:810/ITimeTableWebService/getTimeTable 'ist ungültig oder nicht erkannt.' Gibt es eine Möglichkeit zu überprüfen, ob die richtige Maßnahme verwendet wird? Oder mache ich das falsch? – Nico

+0

Erhalten Sie diesen Fehler, bevor Sie OAuth-Autorisierung anwenden? Wenn du es noch nicht versucht hast, fang dort an. Lassen Sie Ihren WCF-Service und Ihre Kunden optimal arbeiten und wenden Sie dann eine OAuth-Autorisierung an, damit Sie eine Grundlage für Ihre Arbeit haben. –

+0

Ah, das hat geholfen. Es funktioniert immer noch nicht voll, aber das ursprüngliche Problem ist gelöst. Vielen Dank! – Nico

Verwandte Themen