Freigeben über


RequiresRoleAttribute-Klasse

Gibt einen Satz von Rollen an, die einen DomainOperationEntry aufrufen dürfen.

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

Verwendung

'Usage
Dim instance As RequiresRoleAttribute

Syntax

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

Beispiel

Im folgenden Beispiel wird ein Domänendienst mit dem auf die GetCustomers-Methode angewendeten RequiresRoleAttribute-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 RequiresRoleAttribute wird auf eine Domänenmethode angewendet, um den Zugriff auf den Vorgang auf authentifizierte Benutzer einzuschränken, die einer der angegebenen Rollen angehören. Wenn Sie das RequiresRoleAttribute auf eine gesamte Domänendienstklasse anwenden, werden alle Domänenvorgänge auf authentifizierte Benutzer eingeschränkt, die den angegebenen Rollen angehören. Das RequiresRoleAttribute verhindert, dass die Methode ausgeführt wird, wenn der Benutzer die Authentifizierungskriterien erfüllt. Wenn Sie einen Domänenvorgang aufrufen und der Benutzer kein Mitglied der erforderlichen Rolle ist, gibt der Domänenvorgang eine Ausnahme zurück. Sie können diese Situation vermeiden, indem Sie vor dem Aufruf des Domänenvorgangs die IsInRole-Methode für das im Clientprojekt generierte User-Objekt überprüfen.

RIA Services stellt außerdem das RequiresAuthenticationAttribute bereit, um anzugeben, dass der Benutzer authentifiziert werden muss. Sie können benutzerdefinierte Autorisierungsanforderungen bereitstellen, indem Sie eine von 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.RequiresRoleAttribute

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

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