次の方法で共有


RequiresRoleAttribute クラス

DomainOperationEntry を呼び出すことができるロール セットを指定します。

名前空間: System.ServiceModel.DomainServices.Server
アセンブリ: System.ServiceModel.DomainServices.Server (system.servicemodel.domainservices.server.dll 内)

使用方法

'使用
Dim instance As RequiresRoleAttribute

構文

'宣言
<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

次の例は、GetCustomers メソッドに提供された RequiresRoleAttribute 属性を持つドメイン サービスを示します。

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

解説

RequiresRoleAttribute をドメイン メソッドに適用して、操作へのアクセスを、指定されたロールのいずれかに属する認証済みユーザーにのみ制限します。RequiresRoleAttribute をドメイン サービス クラス全体に適用すると、すべてのドメイン操作は、指定されたロールに属する認証済みユーザーにのみ制限されます。RequiresRoleAttribute を使用すると、ユーザーが認証条件を満たしている場合にメソッドの実行が阻止されます。ユーザーが、要求されているロールのメンバーではない場合にドメイン操作を呼び出すと、ドメイン操作は例外を返します。ドメイン操作を呼び出す前にクライアント プロジェクトで生成された User オブジェクトの IsInRole メソッドをチェックすることにより、この状況を回避できます。

RIA サービスは、RequiresAuthenticationAttribute を提供して、ユーザーが認証する必要があることを示します。AuthorizationAttribute から派生するクラスを実装し、IsAuthorized メソッドをオーバーライドすることによって、カスタマイズされた承認要件を提供できます。詳細については、「How to: Create a Custom Authorization Attribute」を参照してください。

継承階層

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

スレッド セーフ

この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008、および Windows 2000

ターゲット プラットフォーム

Change History

参照

リファレンス

RequiresRoleAttribute のメンバー
System.ServiceModel.DomainServices.Server 名前空間