Partager via


Classe RequiresAuthenticationAttribute

Spécifie qu'une opération de domaine ne peut être appelée que par un utilisateur authentifié.

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

Utilisation

'Utilisation
Dim instance As RequiresAuthenticationAttribute

Syntaxe

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

Exemple

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

<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 l'attribut RequiresAuthenticationAttribute à une méthode de domaine pour restreindre l'accès à l'opération aux seuls utilisateurs authentifiés. Lorsque vous appliquez l'attribut RequiresAuthenticationAttribute à une classe DomainService tout entière, les opérations de domaine sont toutes restreintes aux seuls utilisateurs authentifiés. L'attribut RequiresAuthenticationAttribute empêche la méthode de s'exécuter lorsque l'utilisateur n'est pas authentifié. Si vous appelez une opération de domaine lorsque l'utilisateur n'est pas authentifié, l'opération de domaine retourne une exception. Vous pouvez éviter cette situation en vérifiant la propriété IsAuthenticated de l'objet utilisateur généré dans le projet client avant d'appeler l'opération de domaine.

Les Services RIA fournissent également l'attribut RequiresRoleAttribute pour indiquer que l'utilisateur doit appartenir aux rôles spécifiés. Vous pouvez aussi 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.RequiresAuthenticationAttribute

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 RequiresAuthenticationAttribute
Espace de noms System.ServiceModel.DomainServices.Server