2010-08-26 5 views
2

J'ai lu tellement de billets de blog et d'articles que mes yeux deviennent flous. Je n'ai pas encore trouvé ce dont j'ai besoin (ou je ne comprends pas ce que je fais, ce qui est le plus probable).Comment restreindre l'accès à un service de données WCF à un compte d'utilisateur spécifique?

Nous avons un service de données WCF dont nous voulons restreindre l'accès. Nous souhaitons placer le client Web dans un pool d'applications, puis seul le compte du pool d'applications doit pouvoir utiliser le service de données WCF.

Si quelqu'un accède au service WCF directement à partir d'un navigateur ou d'une autre application, il ne devrait pas pouvoir accéder aux données.

Comment puis-je configurer ceci? J'ai essayé d'usurper l'identité, mais je n'arrivais pas à faire fonctionner ça.

La sécurisation des services de données WFC semble beaucoup trop difficile, mais peut-être que je ne la regarde pas correctement. Toute aide serait appréciée. Merci.

Répondre

3

Envisager de lire ce qui suit: http://msdn.microsoft.com/en-us/library/dd728284.aspx

Je considérerais quelque chose comme le code suivant. OnStartProcessingRequest se produit à chaque appel aux services de données WCF;

Protected Overrides Sub OnStartProcessingRequest(ByVal args As System.Data.Services.ProcessRequestArgs) 
     MyBase.OnStartProcessingRequest(args) 
     If HttpContext.Current.User.Identity.Name.ToLower <> "UserName".ToLower Then 
      Throw New DataServiceException("Services restricted") 
     End If 
    End Sub 

Je suis sûr qu'il y aura d'autres méthodes pour faire cela. Si elle est hébergée dans IIS, je suppose qu'elle pourrait être restreinte comme n'importe quelle autre application web asp.net, mais je ne l'ai pas vraiment regardée beaucoup.

+0

mmm ... ne se rendait pas compte que la question était si ancienne ... Ce qui précède concerne la version la plus récente de WCF Data Services à ce moment = – Perry

+0

Merci pour la réponse - même si la question était si vieux. Je pense que votre solution fonctionnerait dans notre cas. À l'époque, j'étais concentré sur l'élaboration d'une solution basée sur la configuration, mais je pense que l'utilisation de OnStartProcessingRequest serait une approche plus simple. – camainc

Questions connexes