2009-08-06 4 views
0

ich Httphandlers bin mit PDF-Report-Dateien zu generieren "on-the-fly" mit dem Benutzerkontext authentifiziert. Um jedoch die Bericht-PDF-Datei zu erstellen, muss ich eine Methode für einen sicheren WCF-Dienst mit dem Kontext des Aufrufers (des authentifizierten Benutzers) aufrufen.Impersonate FormsAuthenticated Benutzer in Httphandler für WCF Anruf

Ich sah viele Antworten für die Windows-Authentifizierung, aber ich bin mit plain old Authentifizierung Forms so die Antworten nicht gelten. Die Authentifizierung auf der Serviceseite erfolgt mithilfe der ASP.NET-Mitgliedschaft (derselbe Server, der den HttpHandler hostet).

Es sollte (hoffentlich) eine Möglichkeit für mich, auf den Anrufer Zusammenhang mit dem Dienst übergeben einfach.

Ich fürchte, ich habe mich nicht klar genug gemacht.

Was ich habe, ist ein WCF-Dienst und ein HttpHandler. Der Benutzer wird mit dem WCF-Dienst mit ASP-Mitgliedschaft authentifiziert.

Was ich tun möchte, ist, in der Httphandler, der Lage sein,

SetContextAsCaller(); 
myWCFService.MyMethodCall(); 

und MyMethodCall() mit dem Kontext des HttpCaller genannt zu tun haben, auf seine ASP-Ticket/username passieren usw.

Antwort

1

Sie könnten - Verwenden Sie je nach verwendeter Bindung und entsprechendem Transportprotokoll die UserName/Passwort-Authentifizierung und weisen Sie die WCF-Server-Seite an, den ASP.NET-Mitgliedschaftsanbieter für die Authentifizierung eingehender Anrufer zu verwenden.

Überprüfen Sie die Fundamentals of WCF Security und diese blog post series auf WCF Sicherheitsszenarien - sie enthalten eine Menge sehr nützlicher Informationen zur Verwendung und Einrichtung der WCF-Sicherheit.

Hilft das, oder benötigen Sie zusätzliche Informationen? Wenn ja: Was brauchst du?

Marc

UPDATE:
OK, nachdem Sie kommentiert, hier sind ein paar weitere Artikel, die spezifisch mit einem WCF-Dienst Identität des Anrufers beschäftigen - hoffen, dass diese Hilfe:

+0

Danke für die schnelle Antwort, aber das ist nicht das, was ich brauche. Ich habe bereits einen sicheren WCF-Dienst. Dies ist mein Problem, weil ich im Dienst die ASP-Mitgliedschaft verwende, um den Aufrufer zu validieren und seine Benutzer-ID abzurufen. Wenn ich den Dienst über den HttpHandler anrufe, verliere ich den Kontext des Anrufers und der Dienstanruf schlägt fehl. Ich möchte den Anrufer von HttpHandler imitieren, wenn er den WCF-Dienst aufruft. – R4cOON

+0

OK, habe meine Antwort mit einigen zusätzlichen Artikeln zum WCF-Identitätswechsel aktualisiert - helfen diese? –

Verwandte Themen