• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试开发技术.NET框架中基于角色的安全性[2]

发布: 2009-8-14 09:55 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

下面是验证的过程:

  //取得当前线程的principal对象 IPrincipal principal = Thread.CurrentPrincipal;

  if (!principal.Identity.Name.Equals("TrustedUser")) { throw new SecurityException( strUserName + " NOT PERMITTED to proceed.\n"); } Console.WriteLine( strUserName + " is PERMITTED to proceed.\n");

  WindowsPrincipal类

  WindowsPrincipal类作为我们在开发中最常遇到的实现了IPrincipal接口的类,构造函数相当简单:

  public WindowsPrincipal(WindowsIdentity ntIdentity);

  下面的代码说明了如何创建一个WindowsPrincipal对象:

  WindowsIdentity wi = WindowsIdentity.GetCurrent(); WindowsPrincipal wp = new WindowsPrincipal(wi);

  WindowsPrincipal类中需要注意的是下面这三个重载的IsInRole方法:

  public virtual bool IsInRole(int);

  第1个重载函数接受一个整型参数,该参数表示用户组对应的RID(RID也就是与域相关联的下级凭证(domain-relative subauthority)ID)。RID值定义在Platform SDK的头文件Winnt.h中,Winnt.h中包括一些常见的用户和组,比如DOMAIN_USER_RID_ADMIN、 DOMAIN_USER_RID_GUEST、DOMAIN_GROUP_RID_ADMINS、DOMAIN_GROUP_RID_USERS和DOMAIN_GROUP_RID_GUESTS等等,可以在...\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include文件夹中找到该文件。

  public virtual bool IsInRole(string);

  第2个重载函数接受一个字符串参数,该参数表示一个用户组名称,比如MYCOMPUTER\Developer(MachineName\GroupName)表示了机器名为MYCOMPUTER的计算机上的Developer用户组。不过对于系统内置的用户组就不能这样表示了,比如Administrators,不能表示为MYCOMPUTER\Administrators,而应该像BUILTIN\Administrators这样,不过这样总觉得有点多余,不够自然。于是我们可以使用下面的重载函数。

  public virtual bool IsInRole(WindowsBuiltInRole);

  第3个重载函数接受一个WindowsBuiltInRole枚举类型参数,下面就是WindowsBuiltInRole枚举中定义的值:

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网