共用方式為


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

範例

下列範例會示範網域服務,其中 RequiresRoleAttribute 屬性已套用至 GetCustomers 方法。

<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 Services 同時提供 RequiresAuthenticationAttribute,指出使用者必須經過驗證。您可以提供自訂的授權需求,方法是實作衍生自 AuthorizationAttribute 的類別並覆寫 IsAuthorized 方法。如需詳細資訊,請參閱 How to: Create a Custom Authorization Attribute

繼承階層

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

執行緒安全性

任何這個類型的公用靜態 (在 Visual Basic 中為 共用) 成員都具備執行緒安全。 不保證任何執行個體成員安全執行緒。

平台

開發平台

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008 和 Windows 2000

目標平台

Change History

另請參閱

參考

RequiresRoleAttribute 成員
System.ServiceModel.DomainServices.Server 命名空間