Freigeben über


RequiresAuthenticationAttribute-Klasse

Gibt an, dass ein Domänenvorgang nur von einem authentifizierten Benutzer aufgerufen werden kann.

Namespace: System.ServiceModel.DomainServices.Server
Assembly: System.ServiceModel.DomainServices.Server (in system.servicemodel.domainservices.server.dll)

Verwendung

'Usage
Dim instance As RequiresAuthenticationAttribute

Syntax

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

Beispiel

Im folgenden Beispiel wird ein Domänendienst mit dem auf die GetSalesOrderHeader-Methode angewendeten RequiresAuthenticationAttribute-Attribut veranschaulicht.

<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;
    }
}

Hinweise

Das RequiresAuthenticationAttribute-Attribut wird auf eine Domänenmethode angewendet, um den Zugriff auf den Vorgang auf authentifizierte Benutzer einzuschränken. Wenn Sie das RequiresAuthenticationAttribute-Attribut auf eine gesamte Domänendienstklasse anwenden, werden alle Domänenvorgänge auf authentifizierte Benutzern eingeschränkt. Das RequiresAuthenticationAttribute-Attribut verhindert, dass die Methode ausgeführt wird, wenn der Benutzer nicht authentifiziert ist. Wenn Sie einen Domänenvorgang aufrufen und der Benutzer nicht authentifiziert ist, gibt der Domänenvorgang eine Ausnahme zurück. Sie können diese Situation vermeiden, indem Sie vor dem Aufruf des Domänenvorgangs die IsAuthenticated-Eigenschaft für das im Clientprojekt generierte User-Objekt überprüfen.

RIA Services stellt außerdem das RequiresRoleAttribute-Attribut bereit, um anzugeben, dass der Benutzer einer oder mehreren angegebenen Rollen angehören muss. Sie können zudem benutzerdefinierte Autorisierungsanforderungen bereitstellen, indem Sie eine vom AuthorizationAttribute abgeleitete Klasse implementieren und die IsAuthorized-Methode überschreiben. Weitere Informationen finden Sie unter How to: Create a Custom Authorization Attribute.

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht sichergestellt.

Plattformen

Entwicklungsplattformen

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 und Windows 2000

Zielplattformen

Change History

Siehe auch

Verweis

RequiresAuthenticationAttribute-Member
System.ServiceModel.DomainServices.Server-Namespace