RequiresAuthenticationAttribute 类

指定只能由经过身份验证的用户调用域操作。

命名空间: System.ServiceModel.DomainServices.Server
程序集: System.ServiceModel.DomainServices.Server(在 system.servicemodel.domainservices.server.dll 中)

用法

用法
Dim instance As RequiresAuthenticationAttribute

语法

声明
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field, AllowMultiple:=False, Inherited:=True)> _
Public NotInheritable Class RequiresAuthenticationAttribute
    Inherits AuthorizationAttribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true)] 
public sealed class RequiresAuthenticationAttribute : AuthorizationAttribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field, AllowMultiple=false, Inherited=true)] 
public ref class RequiresAuthenticationAttribute sealed : public AuthorizationAttribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true) */ 
public final class RequiresAuthenticationAttribute extends AuthorizationAttribute
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true) 
public final class RequiresAuthenticationAttribute extends AuthorizationAttribute

示例

下面的示例演示一个对 GetSalesOrderHeader 方法应用了 RequiresAuthenticationAttribute 特性的域服务。

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

备注

您可以对域方法应用 RequiresAuthenticationAttribute 特性以限制除经过身份验证以外的其他用户对该操作的访问。在对整个域服务类应用 RequiresAuthenticationAttribute 特性时,所有域操作都会仅限于经过身份验证的用户。RequiresAuthenticationAttribute 特性可防止在未对用户进行身份验证时执行对应方法。如果在未对用户进行身份验证时调用某域操作,则该域操作将返回异常。您可以通过在调用该域操作前检查客户端项目中生成的用户对象上的 IsAuthenticated 属性来避免此情况。

RIA Services 还提供 RequiresRoleAttribute 特性以指示用户必须属于指定的角色或某类角色。您还可以通过实现从 AuthorizationAttribute 派生的类并重写 IsAuthorized 方法来提供自定义的授权要求。有关更多信息,请参见How to: Create a Custom Authorization Attribute

继承层次结构

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

线程安全

此类型的任何公共静态(在 Visual Basic 中为 共享)成员都是线程安全的。不保证所有实例成员都是线程安全的。

平台

开发平台

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

目标平台

Change History

另请参见

参考

RequiresAuthenticationAttribute 成员
System.ServiceModel.DomainServices.Server 命名空间