Instrukcje: tworzenie obiektu WindowsPrincipal

Uwaga / Notatka

Ten artykuł dotyczy systemu Windows.

Aby uzyskać informacje o ASP.NET Core, zobacz ASP.NET Core Security.

Istnieją dwa sposoby tworzenia WindowsPrincipal obiektu, w zależności od tego, czy kod musi wielokrotnie wykonywać walidację opartą na rolach, czy musi wykonywać go tylko raz.

Jeśli kod musi wielokrotnie wykonywać walidację opartą na rolach, pierwsza z poniższych procedur generuje mniejsze obciążenie. Jeśli kod musi dokonać weryfikacji opartych na rolach tylko raz, można utworzyć WindowsPrincipal obiekt przy użyciu drugiej z poniższych procedur.

Aby utworzyć obiekt WindowsPrincipal na potrzeby powtarzanej walidacji

  1. Wywołaj metodę SetPrincipalPolicy dla AppDomain obiektu zwróconego przez właściwość statyczną AppDomain.CurrentDomain , przekazując metodę PrincipalPolicy wartość wyliczenia, która wskazuje, jakie powinny być nowe zasady. Obsługiwane wartości to NoPrincipal, UnauthenticatedPrincipali WindowsPrincipal. Poniższy kod pokazuje to wywołanie metody.

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        PrincipalPolicy.WindowsPrincipal);
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _
        PrincipalPolicy.WindowsPrincipal)
    
  2. Po ustawieniu zasad użyj statycznej właściwości Thread.CurrentPrincipal, aby pobrać główną tożsamość reprezentującą bieżącego użytkownika systemu Windows. Ponieważ zwracany typ właściwości to IPrincipal, należy rzutować wynik na typ WindowsPrincipal. Poniższy kod inicjuje nowy obiekt WindowsPrincipal o wartości głównego podmiotu skojarzonego z bieżącym wątkiem.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim myPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. Po utworzeniu głównego obiektu można użyć jednej z kilku metod do jego zweryfikowania.

Aby utworzyć obiekt WindowsPrincipal dla pojedynczej weryfikacji

  1. Zainicjuj nowy WindowsIdentity obiekt, wywołując metodę statyczną WindowsIdentity.GetCurrent , która wysyła zapytanie do bieżącego konta systemu Windows i umieszcza informacje o tym koncie w nowo utworzonym obiekcie tożsamości. Poniższy kod tworzy nowy WindowsIdentity obiekt i inicjuje go do bieżącego uwierzytelnionego użytkownika.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    
  2. Utwórz nowy WindowsPrincipal obiekt i przekaż mu wartość WindowsIdentity obiektu utworzonego w poprzednim kroku.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)
    
  3. Po utworzeniu głównego obiektu można użyć jednej z kilku metod do jego zweryfikowania.

Zobacz także