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 可防止用户在确实满足身份验证条件的情况下执行方法。如果您在用户不是指定角色成员的情况下调用域操作,则域操作将返回一个异常。通过在调用域操作之前,针对客户端项目中生成的用户对象检查 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 命名空间