Classe RequiresRoleAttribute

Specifica un set di ruoli a cui è consentito richiamare un oggetto DomainOperationEntry.

Spazio dei nomi: System.ServiceModel.DomainServices.Server
Assembly: System.ServiceModel.DomainServices.Server (in system.servicemodel.domainservices.server.dll)

Utilizzo

'Utilizzo
Dim instance As RequiresRoleAttribute

Sintassi

'Dichiarazione
<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

Esempio

Nell'esempio seguente viene illustrato un servizio del dominio con l'attributo RequiresRoleAttribute applicato al metodo 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;
    }
}

Osservazioni

L'oggetto RequiresRoleAttribute viene applicato a un metodo di dominio per limitare l'accesso all'operazione solo agli utenti autenticati che appartengono a uno dei ruoli specificati. Quando si applica l'oggetto RequiresRoleAttribute a un'intera classe di servizi del dominio, tutte le operazioni di dominio vengono limitate solo agli utenti autenticati che appartengono ai ruoli specificati. RequiresRoleAttribute impedisce l'esecuzione del metodo quando l'utente non soddisfa i criteri di autenticazione. Se si chiama un'operazione di dominio quando l'utente non è un membro del ruolo richiesto, l'operazione di dominio restituisce un'eccezione. È possibile evitare questa situazione controllando il metodo IsInRole nell'oggetto utente generato nel progetto client prima di chiamare l'operazione di dominio.

In RIA Services è inoltre disponibile l'oggetto RequiresAuthenticationAttribute, per indicare che l'utente deve essere autenticato. È possibile fornire requisiti di autorizzazione personalizzati implementando una classe che deriva da AuthorizationAttribute ed eseguendo l'override del metodo IsAuthorized. Per ulteriori informazioni, vedere How to: Create a Custom Authorization Attribute.

Gerarchia di ereditarietà

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

Sicurezza dei thread

Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Piattaforme

Piattaforme di sviluppo

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 e Windows 2000

Piattaforme di destinazione

Change History

Vedere anche

Riferimento

Membri RequiresRoleAttribute
Spazio dei nomi System.ServiceModel.DomainServices.Server