Clase RequiresRoleAttribute

Especifica un conjunto de roles a los que se les permite invocar DomainOperationEntry.

Espacio de nombres: System.ServiceModel.DomainServices.Server
Ensamblado: System.ServiceModel.DomainServices.Server (en system.servicemodel.domainservices.server.dll)

Uso

'Uso
Dim instance As RequiresRoleAttribute

Sintaxis

'Declaración
<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

Ejemplo

En el ejemplo siguiente se muestra un servicio de dominio con el atributo RequiresRoleAttribute aplicado al método 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;
    }
}

Notas

RequiresRoleAttribute se aplica a un método de dominio para restringir el acceso a la operación únicamente a los usuarios autenticados que pertenezcan a uno de los roles especificados. Cuando se aplica RequiresRoleAttribute a una clase de servicio de dominio completa, todas las operaciones de dominio se restringen a los usuarios autenticados que pertenecen a los roles especificados. RequiresRoleAttribute impide que el método se ejecute cuando el usuario no cumple los criterios de autenticación. Si se llama a una operación de dominio pero el usuario no es miembro del rol necesario, la operación de dominio devuelve una excepción. Para evitar esta situación, se comprueba el método IsInRole en el objeto User generado en el proyecto de cliente antes de llamar a la operación de dominio.

RIA Services también proporciona RequiresAuthenticationAttribute para indicar que el usuario se debe autenticar. Se pueden proporcionar requisitos de autorización personalizados; para ello, se implementa una clase derivada de AuthorizationAttribute y se invalida el método IsAuthorized. Para obtener más información, vea How to: Create a Custom Authorization Attribute.

Jerarquía de herencia

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

Seguridad para subprocesos

Cualquier miembro estático público (Compartidos en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Plataformas

Plataformas de desarrollo

Microsoft Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 y Windows 2000

Plataformas de destino

Change History

Vea también

Referencia

Miembros RequiresRoleAttribute
Espacio de nombres System.ServiceModel.DomainServices.Server