Condividi tramite


Classe RequiresAuthenticationAttribute

Specifica che un'operazione di dominio può essere richiamata solo da un utente autenticato.

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

Utilizzo

'Utilizzo
Dim instance As RequiresAuthenticationAttribute

Sintassi

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

Esempio

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

Osservazioni

L'attributo RequiresAuthenticationAttribute viene applicato a un metodo di dominio per limitare l'accesso all'operazione solo agli utenti autenticati. Quando si applica l'attributo RequiresAuthenticationAttribute a un'intera classe di servizi del dominio, tutte le operazioni di dominio vengono limitate solo agli utenti autenticati. L'attributo RequiresAuthenticationAttribute impedisce l'esecuzione del metodo quando l'utente non è autenticato. Se si chiama un'operazione di dominio quando l'utente non è autenticato, l'operazione di dominio restituisce un'eccezione. È possibile evitare questa situazione controllando la proprietà IsAuthenticated nell'oggetto utente generato nel progetto client prima di chiamare l'operazione di dominio.

In RIA Services è inoltre disponibile l'attributo RequiresRoleAttribute, per indicare che l'utente deve appartenere a uno o più ruoli specificati. È anche 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.RequiresAuthenticationAttribute

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 RequiresAuthenticationAttribute
Spazio dei nomi System.ServiceModel.DomainServices.Server