WindowsBuiltInRole Wyliczenie

Definicja

Określa typowe role, które mają być używane z programem IsInRole(String).

C#
public enum WindowsBuiltInRole
C#
[System.Serializable]
public enum WindowsBuiltInRole
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum WindowsBuiltInRole
Dziedziczenie
WindowsBuiltInRole
Atrybuty

Pola

Nazwa Wartość Opis
AccountOperator 548

Operatorzy kont zarządzają kontami użytkowników na komputerze lub domenie.

Administrator 544

Administratorzy mają pełny i nieograniczony dostęp do komputera lub domeny.

BackupOperator 551

Operatorzy kopii zapasowych mogą zastąpić ograniczenia zabezpieczeń wyłącznie w celu tworzenia kopii zapasowych lub przywracania plików.

Guest 546

Goście są bardziej ograniczeni niż użytkownicy.

PowerUser 547

Użytkownicy power mają większość uprawnień administracyjnych z pewnymi ograniczeniami. Dzięki temu użytkownicy mogą uruchamiać starsze aplikacje oprócz certyfikowanych aplikacji.

PrintOperator 550

Operatory wydruku mogą przejąć kontrolę nad drukarką.

Replicator 552

Replikatory obsługują replikację plików w domenie.

SystemOperator 549

Operatorzy systemu zarządzają określonym komputerem.

User 545

Użytkownicy nie mogą wprowadzać przypadkowych lub zamierzonych zmian w całym systemie. W związku z tym użytkownicy mogą uruchamiać certyfikowane aplikacje, ale nie większość starszych aplikacji.

Przykłady

W poniższym przykładzie pokazano użycie wyliczenia WindowsBuiltInRole .

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();
    }
}

Uwagi

Te role reprezentują lokalne grupy systemu Windows typowe dla większości instalacji systemów Windows NT, Windows 2000 i Windows XP.

Uwaga

W systemie Windows Vista kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Podczas próby wykonania zadania wymagającego uprawnień administracyjnych można dynamicznie podnieść poziom roli przy użyciu okna dialogowego Zgoda. Kod wykonujący metodę IsInRole nie wyświetla okna dialogowego Zgoda. Kod zwraca wartość false, jeśli jesteś w roli użytkownika standardowego, nawet jeśli jesteś w grupie Wbudowane administratorzy. Możesz podnieść poziom uprawnień przed wykonaniem kodu, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Dotyczy

Produkt Wersje
.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