Ler em inglês

Partilhar via


WindowsBuiltInRole Enumeração

Definição

Especifica as funções comuns a serem usadas com o IsInRole(String).

C#
public enum WindowsBuiltInRole
C#
[System.Serializable]
public enum WindowsBuiltInRole
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum WindowsBuiltInRole
Herança
WindowsBuiltInRole
Atributos

Campos

Nome Valor Description
AccountOperator 548

Os operadores de conta gerenciam as contas de usuário em um computador ou domínio.

Administrator 544

Os administradores têm acesso completo e irrestrito ao computador ou domínio.

BackupOperator 551

Operadores de backup podem substituir as restrições de segurança com o único objetivo de fazer backup ou restaurar arquivos.

Guest 546

Convidados são mais restritos que usuários.

PowerUser 547

Os usuários avançados têm a maioria das permissões administrativas com algumas restrições. Portanto, os usuários avançados podem executar aplicativos herdados, além de aplicativos certificados.

PrintOperator 550

Operadores de impressão podem assumir o controle de uma impressora.

Replicator 552

Os replicadores dão suporte à replicação de arquivos em um domínio.

SystemOperator 549

Os operadores de sistema gerenciam um computador específico.

User 545

Os usuários são impedidos de fazer alterações acidentais ou intencionais ao sistema. Portanto, os usuários podem executar aplicativos certificados, mas não a maioria dos aplicativos herdados.

Exemplos

O exemplo a seguir mostra o uso da WindowsBuiltInRole enumeração .

C#
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    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
            {
                // Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName,
                    myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
                Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString());
            }
            catch (Exception)
            {
                Console.WriteLine("{0}: Could not obtain role for this RID.",
                    roleName);
            }
        }
        // Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators",
            myPrincipal.IsInRole("BUILTIN\\" + "Administrators"));
        Console.WriteLine("{0}? {1}.", "Users",
            myPrincipal.IsInRole("BUILTIN\\" + "Users"));
        // Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
           myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
        // Get the role using the WellKnownSidType.
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    }

    public static void Main()
    {
        DemonstrateWindowsBuiltInRoleEnum();
    }
}

Comentários

Essas funções representam os grupos locais do Windows comuns à maioria das instalações do Windows NT, Windows 2000 e Windows XP.

Nota

No Windows Vista, o UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se for um membro do grupo Administradores Internos, você receberá dois tokens de acesso do tempo de execução: um token de acesso do usuário padrão e um token de acesso do administrador. Por padrão, você está na função de usuário padrão. Ao tentar executar uma tarefa que requer privilégios administrativos, você pode elevar dinamicamente sua função usando a caixa de diálogo Consentimento. O código que executa o IsInRole método não exibe a caixa de diálogo Consentimento. O código retornará false se você estiver na função de usuário padrão, mesmo que você esteja no grupo Administradores Internos. Você pode elevar seus privilégios antes de executar o código clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5