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