验证用户凭据



我有一个独特的困境。

我正在开发一个类,将测试用户帐户权限,我已经涵盖了大多数基础。但我最关心的是对NullSID的测试。

我担心的原因是:

if(user != null)
{
   role.IsInRole(WindowsBuiltInRole.Administrator);
}

显然是一个简单的实现来演示,但是WindowsBuiltInRole检查是否严格基于单个机器或针对域?如果用户的域帐户确实是Administrator,测试是否成功?

或者更好的方法是针对五个或六个域SID令牌进行测试?其他用户帐户(如网络服务帐户)是否会以同样的方式操作?确保令牌值的真实性的最佳方法是什么?

WindowsBuiltInRole枚举精确地对应于Windows sid,并且精确地对应于与Windows内置组相关联的众所周知的sid: Windows操作系统中众所周知的安全标识符,所有sid以'S-1-5-32-'开头。

枚举值的整数值对应sid中的最后一个数字,因此,因为WindowsBuiltInRole。管理员为544,对应S-1-5-32-544。这段代码检查的是用户是否属于Administrators组:

席德:s - 1 - 5 - 32 - 544

名称:管理员

Description:内置组。初始安装操作系统后,只有组成员为Administrator帐户。当一台电脑加入域后,domain Admins组加入到Administrators组中组。当服务器成为域控制器时,EnterpriseAdmins组也被添加到Administrators组中。

根据WindowsBuiltInRole的定义:

WindowsBuiltInRole枚举

WindowsBuiltInRole。管理员角色确实适用于计算机和域,没有任何限制。

WindowsBuiltInRole。PowerUser将能够运行应用程序,但不能安装或卸载东西。

WindowsBuiltInRole。AccountAdministrator可以管理帐户甚至更改权限,但不能进行域范围的更改(如在分布式部署中)。

WindowsBuiltInRole。BackupOperator可以超越安全限制,仅用于备份或恢复文件。

WindowsBuiltInRole。Replicator支持域内文件复制。

这些不同的角色可能看起来很模糊,但可以推断,除了Administrator之外,所有角色都可以执行一些Administrator任务,但不是全部。

相关内容

  • 没有找到相关文章

最新更新