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