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 命名空间