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