Share via


Clase RequiresAuthenticationAttribute

Especifica que solo un usuario autenticado puede invocar una operación de dominio.

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

Uso

'Uso
Dim instance As RequiresAuthenticationAttribute

Sintaxis

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

Ejemplo

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

Notas

El atributo RequiresAuthenticationAttribute se aplica a un método de dominio para restringir el acceso a la operación únicamente a los usuarios autenticados. Cuando se aplica el atributo RequiresAuthenticationAttribute a una clase de servicio de dominio completa, todas las operaciones de dominio se restringen a los usuarios autenticados. El atributo RequiresAuthenticationAttribute impide que el método se ejecute cuando el usuario no está autenticado. Si se llama a una operación de dominio pero el usuario no está autenticado, la operación de dominio devuelve una excepción. Para evitar esta situación, se comprueba la propiedad IsAuthenticated en el objeto User generado en el proyecto de cliente antes de llamar a la operación de dominio.

RIA Services también proporciona el atributo RequiresRoleAttribute para indicar que el usuario debe pertenecer al rol o los roles especificados. También 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.RequiresAuthenticationAttribute

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 RequiresAuthenticationAttribute
Espacio de nombres System.ServiceModel.DomainServices.Server