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