2010-10-13 15 views
1

J'ai beaucoup lu sur l'usurpation d'identité, et j'ai essayé une tonne de tags dans mon fichier de configuration. J'ai essayé [OperationBehavior(Impersonation = ImpersonationOption.Required)] sur ma méthode qui frappe la base de données.Puis-je avoir un appel WCF qui frappe la DB utiliser les creds de l'appelant?

Rien de tout cela ne fonctionne. Je reçois une grande variété de messages d'erreur selon la configuration de ma configuration.

Quelqu'un peut-il poser pour moi ce que C# et la configuration (c.-à-fixations, les comportements, les paramètres des points d'extrémité) est nécessaire pour obtenir le scénario suivant au travail:

  • J'appelle une méthode WCF via WCFTestClient.
  • La méthode WCF est hébergée dans IIS (s'exécutant sous un utilisateur IIS qui n'est pas un utilisateur valide dans la base de données).
  • Cette méthode voit qui est l'appelant et transmet ces informations d'identification à l'appel à la base de données
  • L'appel à la base de données est dans un autre projet (une bibliothèque de classes) et utilise LINQ to SQL
  • Le La base de données effectue l'action comme si l'appelant du service WCF l'avait fait.

Si quelqu'un a clarifié ce mystère s'il vous plaît partager les détails avec moi.

Merci!

(NOTE: Je développe dans Visual Studio 2010 Ultimate et l'hébergement dans IIS 7)

Répondre

1

Il y a une belle visite virtuelle de la façon de mettre en place impersonation in WCF here. Le paramètre servicebehavior est peut-être manquant?