WindowsBuiltInRole 枚举

指定与 IsInRole 一起使用的公共角色。

**命名空间:**System.Security.Principal
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration WindowsBuiltInRole
用法
Dim instance As WindowsBuiltInRole
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public enum WindowsBuiltInRole
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public enum class WindowsBuiltInRole
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public enum WindowsBuiltInRole
SerializableAttribute 
ComVisibleAttribute(true) 
public enum WindowsBuiltInRole

成员

  成员名称 说明
AccountOperator 帐户操作员管理计算机或域中的用户帐户。 
Administrator 管理员具有对计算机或域的完全的无限制的访问权限。 
BackupOperator 备份操作员仅在出于备份或还原文件目的时才可以重写安全限制。 
Guest 来宾受到比用户更多的限制。 
PowerUser 超级用户具有大部分管理员权限(但也受到某些限制)。因此,高级用户除了可以运行已验证过的应用程序外,还可以运行旧式应用程序。 
PrintOperator 打印操作员可以获得打印机的控制权。 
Replicator 复制程序支持域中的文件复制。 
SystemOperator 系统操作员管理特定的计算机。 
User 用户被阻止进行意外的或有意的系统级更改。因此,用户可以运行已验证过的应用程序,但不能运行大部分旧式应用程序。 

备注

这些角色表示 Windows NT、Windows 2000 和 Windows XP 的大多数安装所共有的本地 Windows 组。

示例

下面的示例说明 WindowsBuiltInRole 枚举的用法。

Public Shared Sub DemonstrateWindowsBuiltInRoleEnum()
   Dim myDomain As AppDomain = Thread.GetDomain()
   
   myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
   Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal)
   
   
   Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString())
   
   Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole))
   
   Dim roleName As Object
   For Each roleName In  wbirFields
      Try

         Console.WriteLine("{0}? {1}.", roleName, _
                           myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))

      Catch

     Console.WriteLine("{0}: Could not obtain the role for this RID.", roleName)

      End Try
   Next roleName

End Sub 'DemonstrateWindowsBuiltInRoleEnum
public static void DemonstrateWindowsBuiltInRoleEnum()
{
    AppDomain myDomain = Thread.GetDomain();

    myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
    WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;


    Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString());

    Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole));

    foreach (object roleName in wbirFields)
    {
        try
        {
            Console.WriteLine("{0}? {1}.", roleName,
                myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
        } 
        catch (Exception)
        {
            Console.WriteLine("{0}: Could not obtain role for this RID.",
                roleName);
        }
    }        

}
public:
   static void DemonstrateWindowsBuiltInRoleEnum()
   {
      AppDomain^ myDomain = Thread::GetDomain();

      myDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal );
      WindowsPrincipal^ myPrincipal = dynamic_cast<WindowsPrincipal^>(Thread::CurrentPrincipal);

      Console::WriteLine( "{0} belongs to: ", myPrincipal->Identity->Name );

      Array^ wbirFields = Enum::GetValues( WindowsBuiltInRole::typeid );

      for each ( Object^ roleName in wbirFields )
      {
         try
         {
            Console::WriteLine( "{0}? {1}.", roleName,
               myPrincipal->IsInRole(  *dynamic_cast<WindowsBuiltInRole^>(roleName) ) );
         }
         catch ( Exception^ ) 
         {
            Console::WriteLine( "{0}: Could not obtain role for this RID.",
               roleName );
         }
      }
   }
public static void DemonstrateWindowsBuiltInRoleEnum()
{
    AppDomain myDomain = Thread.GetDomain();

    myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

    WindowsPrincipal myPrincipal = ((WindowsPrincipal)
        (Thread.get_CurrentPrincipal()));

    Console.WriteLine("{0} belongs to: ",
        myPrincipal.get_Identity().get_Name().ToString());

    Array wbirFields = Enum.GetValues(WindowsBuiltInRole.class.ToType());

    for (int iCtr = 0; iCtr < wbirFields.get_Count(); iCtr++) {
        Object roleName = wbirFields.get_Item(iCtr);
        try {
            Console.WriteLine("{0}? {1}.", roleName, 
            System.Convert.ToString(myPrincipal.
            IsInRole(((WindowsBuiltInRole)(roleName)))));
        }
        catch (System.Exception exp) {
            Console.WriteLine(
                "{0}: Could not obtain role for this RID.", roleName);
        }
    }
} //DemonstrateWindowsBuiltInRoleEnum

平台

Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

System.Security.Principal 命名空间