Procedura: creare un oggetto WindowsPrincipal
Nota
Questo articolo si applica a Windows.
Per informazioni su ASP.NET Core, vedere Sicurezza ASP.NET Core.
Vi sono due metodi per creare un oggetto WindowsPrincipal, a seconda che il codice debba eseguire ripetutamente la convalida basata sui ruoli o solo una alla volta.
Se è necessario che il codice esegua ripetutamente la convalida basata sui ruoli, la prima delle procedure riportate di seguito implica un minor sovraccarico. Quando è necessario che il codice esegua convalide basate sui ruoli solo una volta, è possibile creare un oggetto WindowsPrincipal usando la seconda delle seguenti procedure.
Per creare un oggetto WindowsPrincipal per una convalida ripetuta
Chiamare il metodo SetPrincipalPolicy sull'oggetto AppDomain restituito dalla proprietà statica AppDomain.CurrentDomain, passando il metodo a un valore di enumerazione PrincipalPolicy che indica quale dovrebbero essere i nuovi criteri. I valori supportati sono NoPrincipal, UnauthenticatedPrincipal e WindowsPrincipal. Il codice seguente illustra questa chiamata al metodo.
AppDomain.CurrentDomain.SetPrincipalPolicy( PrincipalPolicy.WindowsPrincipal);
AppDomain.CurrentDomain.SetPrincipalPolicy( _ PrincipalPolicy.WindowsPrincipal)
Con i criteri impostati usare la proprietà statica Thread.CurrentPrincipal per richiamare l'entità che incapsula l'utente Windows corrente. Poiché il tipo restituito della proprietà è IPrincipal, si deve eseguire il cast del risultato a un tipo WindowsPrincipal. Il codice seguente inizializza un nuovo oggetto WindowsPrincipal al valore dell'entità associata con il thread corrente.
WindowsPrincipal myPrincipal = (WindowsPrincipal) Thread.CurrentPrincipal;
Dim myPrincipal As WindowsPrincipal = _ CType(Thread.CurrentPrincipal, WindowsPrincipal)
Quando l'oggetto Principal è stato creato, è possibile usare uno dei diversi metodi per convalidarlo.
Per creare un oggetto WindowsPrincipal per una singola convalida
Inizializzare un nuovo oggetto WindowsIdentity chiamando il metodo statico WindowsIdentity.GetCurrent, che sottopone a query l'account Windows corrente e inserisce le informazioni relative all'account in un oggetto Identity appena creato. Il codice seguente crea un nuovo oggetto WindowsIdentity e lo inizializza per l'utente autenticato corrente.
WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
Creare un nuovo oggetto WindowsPrincipal e passargli il valore dell'oggetto WindowsIdentity creato nel passaggio precedente.
WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
Dim myPrincipal As New WindowsPrincipal(myIdentity)
Quando l'oggetto Principal è stato creato, è possibile usare uno dei diversi metodi per convalidarlo.