Condividi tramite


Procedura: creare un oggetto WindowsPrincipal

Aggiornamento: novembre 2007

Esistono due metodi per creare un oggetto WindowsPrincipal, a seconda che il codice debba eseguire la convalida basata sui ruoli ripetutamente o una sola volta.

Se è necessario che il codice esegua ripetutamente la convalida basata sui ruoli, la prima procedura riportata di seguito implica un minor sovraccarico. Quando è necessario che il codice esegua un'unica volta la convalida basata sui ruoli, è possibile creare un oggetto WindowsPrincipal attenendosi alla seconda procedura riportata di seguito.

Per creare un oggetto WindowsPrincipal per la convalida ripetuta

  1. Chiamare il metodo SetPrincipalPolicy sull'oggetto AppDomain restituito dalla proprietà AppDomain.CurrentDomain statica, passando il metodo a un valore dell'enumerazione PrincipalPolicy indicante il nuovo criterio desiderato. I valori supportati sono NoPrincipal, UnauthenticatedPrincipal e WindowsPrincipal. La chiamata al metodo viene illustrata nel codice riportato di seguito.

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        PrincipalPolicy.WindowsPrincipal);
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _
        PrincipalPolicy.WindowsPrincipal)
    
  2. Dopo aver impostato il criterio, utilizzare la proprietà Thread.CurrentPrincipal statica per recuperare l'oggetto Principal che incapsula l'utente Windows corrente. Poiché il tipo restituito della proprietà è IPrincipal, è necessario eseguire il cast del risultato in un tipo WindowsPrincipal. Nel codice riportato di seguito un nuovo oggetto WindowsPrincipal viene inizializzato in base al valore dell'oggetto Principal associato al thread corrente.

    WindowsPrincipal MyPrincipal = 
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim MyPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal) 
    

Per creare un oggetto WindowsPrincipal per una singola convalida

  1. Inizializzare un nuovo oggetto WindowsIdentity mediante una chiamata al metodo WindowsIdentity.GetCurrent statico, che consente di eseguire una query dell'account Windows corrente e di inserire informazioni relative a tale account nell'oggetto identità appena creato. Nel codice riportato di seguito viene creato un nuovo oggetto WindowsIdentity e tale oggetto viene inizializzato in base all'utente autenticato corrente.

    WindowsIdentity MyIdentity = WindowsIdentity.GetCurrent();
    
    Dim MyIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    
  2. Creare un nuovo oggetto WindowsPrincipal e passarlo al valore dell'oggetto WindowsIdentity creato al passaggio precedente.

    WindowsPrincipal MyPrincipal = new WindowsPrincipal(MyIdentity);
    
    Dim MyPrincipal As New WindowsPrincipal(MyIdentity)
    
  3. Dopo aver creato l'oggetto Principal, è possibile utilizzare vari metodi per convalidarlo. Per ulteriori informazioni, vedere Controlli della protezione basata sui ruoli.

Vedere anche

Concetti

Oggetti Principal e Identity