WCF RIA 服务 (三十四)-- 身份验证、角色、个性化 5

如何:创建自定义验证属性

WCF RIA  Services框架提供了RequiresAuthenticationAttribute和RequiresRoleAttribute属性。这两个 属性使我们很方便地指定哪个域操作是仅仅对验证用户或特定角色成员可用的。除了这两个属性,我们可以创建自制验证逻辑属性并对域操作应用这个属性。
这 章我们演示如何为身份验证添加自制属性。我们通过创建一个派生于AuthorizationAttribute的类并重载Authorize方法用来提供 我们自定义的逻辑,来创建一个自制验证属性。

1. 在服务端项目中,创建派生于AuthorizationAttribute的类。
2. 重载Authorize方法,并添加判断是否授权的逻辑。下面的例子演示一个名为CheckAttendeeName的定制属性,来检测用户的角色和用户 名字的第一个字母。
[c-sharp] view plain copy print ?
  1. public class CheckAttendeeNameAttribute : System.Web.DomainServices.AuthorizationAttribute 
  2.     public override bool Authorize(System.Security.Principal.IPrincipal principal) 
  3.     { 
  4.         if (principal.IsInRole("Attendee") && principal.Identity.Name.StartsWith("A")) 
  5.         { 
  6.             return true
  7.         } 
  8.         else 
  9.         { 
  10.             return false
  11.         } 
  12.     } 


3. 要执行自定义的验证逻辑,对域操作应用这个自定义的验证属性。

[c-sharp] view plain copy print ?
  1. [CheckAttendeeName()] 
  2. public IQueryable<course> GetCourses() 
  3.     return this.ObjectContext.Courses; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值