2009-08-06 8 views
0

J'utilise HttpHandlers pour générer des fichiers de rapport PDF "à la volée" en utilisant le contexte utilisateur authentifié. Toutefois, pour créer le fichier PDF de rapport, j'ai besoin d'appeler une méthode sur un service WCF sécurisé avec le contexte de l'appelant (l'utilisateur authentifié).Impersonate FormsAuthenticated utilisateur dans HttpHandler pour l'appel WCF

J'ai vu beaucoup de réponses pour l'authentification Windows mais j'utilise l'ancienne authentification par formulaires pour que les réponses ne s'appliquent pas. L'authentification du côté service est effectuée à l'aide de l'appartenance ASP.NET (même serveur qui héberge le HttpHandler).

Il devrait (je l'espère) être un moyen pour moi de simplement transmettre le contexte de l'appelant au service. Je crains de ne pas m'être suffisamment éclairci.

Ce que j'ai un service WCF et un HttpHandler. L'utilisateur est authentifié avec le service WCF avec l'appartenance ASP.

Ce que je veux faire est, dans le HttpHandler, être en mesure de faire

SetContextAsCaller(); 
myWCFService.MyMethodCall(); 

et ont MyMethodCall() appelé en utilisant le contexte de HttpCaller de transmettre son ticket ASP/nom d'utilisateur, etc.

Répondre

1

Vous pourriez - en fonction du protocole de liaison et de transport utilisé, utilisez l'authentification UserName/Passwort et demandez au serveur WCF d'utiliser le fournisseur d'appartenance ASP.NET pour authentifier les appelants entrants.

Consultez le Fundamentals of WCF Security et ce blog post series sur les scénarios de sécurité WCF - ils contiennent beaucoup d'informations très utiles sur l'utilisation et la configuration de la sécurité WCF.

Cela vous aide-t-il ou avez-vous besoin d'informations supplémentaires? Si oui: de quoi avez-vous besoin?

Marc

MISE À JOUR:
OK, après avoir commenté, voici quelques articles qui traitent spécifiquement avec un service WCF se faisant passer pour l'appelant - espérons que ces aide:

+0

Merci pour la réponse rapide, mais ce n'est pas ce dont j'ai besoin. J'ai déjà un service WCF sécurisé. C'est mon problème parce que dans le service j'utilise l'adhésion ASP pour valider l'appelant et obtenir son ID utilisateur. Lorsque j'appelle le service via le HttpHandler, je perds le contexte de l'appelant et l'appel de service échoue. Je voudrais emprunter l'identité de l'appelant HttpHandler lors de l'appel au service WCF. – R4cOON

+0

OK, mis à jour ma réponse avec quelques articles supplémentaires sur l'usurpation d'identité WCF - est-ce que cela aide? –

Questions connexes