2010-07-28 7 views
0

Est-ce que quelqu'un peut me diriger vers une procédure relativement simple sur la façon de configurer correctement un service WCF 4.0 hébergé par ASP.Net pour usurper l'identité d'un appelant pour certaines méthodes du service, mais autoriser les utilisateurs anonymes accès à d'autres méthodes?Usurpation d'identité client WCF

J'ai beaucoup lu à ce sujet sur MSDN, mais plus je lis, plus je suis confus. Peut-être que je suis juste un cancre, mais cela semble beaucoup plus difficile qu'il devrait être :-(

J'ai regardé les messages ici sur SE, mais aucun ne semble pointer vers un échantillon de bout en bout ou un tutoriel . il y a un document d'orientation WCF sur CodePlex, mais il semble désespérément obsolète, et n'a pas été mis à jour depuis 2008.

Toute aide

Répondre

1

ici serait grandement apprécié. Cela peut se faire via le OperationBehaviorAttribute.Impersonation propriété

[ServiceContract] 
interface ISelectiveImpersonationExample 
{ 
    [OperationContract] 
    void ThisUsesImpersonation(); 

    [OperationContract] 
    void ThisDoesNotUseImpersonation(); 
} 


// Implementation 
class SelectiveImpersonationExampleImpl : ISelectiveImpersonationExample 
{ 
    [OperationBehavior(Impersonation=ImpersonationOption.Required)] 
    public void ThisUsesImpersonation() 
    { 
     // ... 
    } 

    [OperationBehavior(Impersonation=ImpersonationOption.NotAllowed)] 
    public void ThisDoesNotUseImpersonation() 
    { 
     // ... 
    } 
} 

Assurez-vous que vous ne définissez pas la valeur ImpersonateCallForAllOperations du comportement du service sur true. Si vous le faites, la fonction ThisDoesNotUseImpersonation lancera un InvalidOperationException.

Je vais en théorie ici, et je ne l'ai pas vraiment fait dans la vraie vie. Si cela ne fonctionne pas, faites le moi savoir.

+0

Merci, je vais essayer. Ce que je trouve le plus déroutant, cependant, est d'essayer de définir les paramètres de configuration appropriés pour que cela fonctionne. Je vous le ferai savoir. – camainc