2010-11-20 21 views

Répondre

5

Étant donné que vous semblez utiliser l'authentification Windows, vous pourrez utiliser les groupes Active Directory et l'appartenance de vos utilisateurs à ces groupes pour limiter l'utilisation des méthodes de service.

Avec cela, vous pouvez alors utiliser la syntaxe déclarative pour limiter les appels à certains groupes:

[ServiceContract] 
interface IMyService 
{ 
    [OperationContract] 
    [PrincipalPermission(SecurityAction.Demand, Role="YourCustomRole")] 
    public string MethodLimitedToGroup(string someInput); 
} 

Tous ceux qui ne sont pas membre de ce groupe que vous avez spécifié, et essaie d'appeler cette méthode, recevra un SecurityException - mais rien d'autre.

Est-ce ce que vous cherchez?

+0

Oui, ce que je cherche, mais je ne comprends pas la relation entre ASP.Net et Active Directory? Comment le fournisseur de rôle Asp.net se réveille du groupe d'utilisateurs Active Directory. – Nim

+0

@Nim: désolé, mon mauvais - je me suis mélangé; dans les services WCF, vous n'avez besoin d'rien d'autre. Utiliser les informations d'identification Windows pour l'authentification doit également fournir cette fonctionnalité pour restreindre l'accès aux méthodes à certains groupes –

+1

Si votre nom de rôle provient du fichier de configuration, vous ne pouvez pas utiliser la syntaxe déclarative car les valeurs d'attribut ne peuvent être que des constantes de temps de compilation. Dans cette utilisation, utilisez le code impératif équivalent. – softveda