Partager via


Classe RequiresRoleAttribute

Spécifie un ensemble de rôles autorisés à appeler un DomainOperationEntry.

Espace de noms: System.ServiceModel.DomainServices.Server
Assembly : System.ServiceModel.DomainServices.Server (dans system.servicemodel.domainservices.server.dll)

Utilisation

'Utilisation
Dim instance As RequiresRoleAttribute

Syntaxe

'Déclaration
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field, AllowMultiple:=True, Inherited:=True)> _
Public NotInheritable Class RequiresRoleAttribute
    Inherits AuthorizationAttribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=true, Inherited=true)] 
public sealed class RequiresRoleAttribute : AuthorizationAttribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field, AllowMultiple=true, Inherited=true)] 
public ref class RequiresRoleAttribute sealed : public AuthorizationAttribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=true, Inherited=true) */ 
public final class RequiresRoleAttribute extends AuthorizationAttribute
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=true, Inherited=true) 
public final class RequiresRoleAttribute extends AuthorizationAttribute

Exemple

L'exemple suivant illustre un service de domaine avec l'attribut RequiresRoleAttribute appliqué à la méthode GetCustomers.

<EnableClientAccess()>  _
Public Class AdventureWorksDomainService
    Inherits LinqToEntitiesDomainService(Of AdventureWorksLT_DataEntities)

    <RequiresRole("Managers")> _
    Public Function GetCustomers() As IQueryable(Of Customer)
        Return Me.ObjectContext.Customers
    End Function
    
    Public Function GetProducts() As IQueryable(Of Product)
        Return Me.ObjectContext.Products
    End Function

    <RequiresAuthentication()> _
    Public Function GetSalesOrderHeaders() As IQueryable(Of SalesOrderHeader)
        Return Me.ObjectContext.SalesOrderHeaders
    End Function
End Class
[EnableClientAccess()]
public class AdventureWorksDomainService : LinqToEntitiesDomainService<AdventureWorksLT_DataEntities>
{
    [RequiresRole("Managers")]
    public IQueryable<Customer> GetCustomers()
    {
        return this.ObjectContext.Customers;
    }
 
    public IQueryable<Product> GetProducts()
    {
        return this.ObjectContext.Products;
    }

    [RequiresAuthentication()]
    public IQueryable<SalesOrderHeader> GetSalesOrderHeaders()
    {
        return this.ObjectContext.SalesOrderHeaders;
    }
}

Notes

Vous appliquez RequiresRoleAttribute à une méthode de domaine pour restreindre l'accès à l'opération aux seuls utilisateurs authentifiés qui appartiennent à l'un des rôles spécifiés. Lorsque vous appliquez RequiresRoleAttribute à une classe DomainService tout entière, les opérations de domaine sont toutes restreintes aux seuls utilisateurs authentifiés qui appartiennent aux rôles spécifiés. RequiresRoleAttribute empêche la méthode de s'exécuter lorsque l'utilisateur ne satisfait pas aux critères d'authentification. Si vous appelez une opération de domaine lorsque l'utilisateur n'est pas membre du rôle requis, l'opération de domaine retourne une exception. Vous pouvez éviter cette situation en vérifiant la méthode IsInRole de l'objet utilisateur généré dans le projet client avant d'appeler l'opération de domaine.

Les Services RIA fournissent également RequiresAuthenticationAttribute pour indiquer que l'utilisateur doit être authentifié. Vous pouvez fournir des spécifications d'autorisation personnalisées en implémentant une classe qui dérive de AuthorizationAttribute et en substituant la méthode IsAuthorized. Pour plus d'informations, consultez How to: Create a Custom Authorization Attribute.

Hiérarchie d'héritage

System.Object
   System.Attribute
     System.ComponentModel.DataAnnotations.AuthorizationAttribute
      System.ServiceModel.DomainServices.Server.RequiresRoleAttribute

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Membres RequiresRoleAttribute
Espace de noms System.ServiceModel.DomainServices.Server