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 名前空間