Cómo: Crear un objeto WindowsPrincipal
Actualización: noviembre 2007
Hay dos formas de crear un objeto WindowsPrincipal, dependiendo de si el código debe realizar repetidamente la validación basada en funciones o si sólo tiene que realizarla una vez.
Si el código debe realizar repetidamente la validación basada en funciones, el primero de los procedimientos siguientes produce una sobrecarga menor. Cuando el código necesita efectuar una sola vez validaciones basadas en funciones, se puede crear un objeto WindowsPrincipal mediante la utilización del segundo de los procedimientos siguientes.
Para crear un objeto WindowsPrincipal para la validación repetida
Llame al método SetPrincipalPolicy en el objeto AppDomain que devuelve la propiedad AppDomain.CurrentDomain estática, pasando el método a un valor de enumeración PrincipalPolicy que indica cuál debería ser la nueva directiva. Los valores admitidos son NoPrincipal, UnauthenticatedPrincipal y WindowsPrincipal. En el siguiente ejemplo de código se muestra esta llamada al método.
AppDomain.CurrentDomain.SetPrincipalPolicy( PrincipalPolicy.WindowsPrincipal);
AppDomain.CurrentDomain.SetPrincipalPolicy( _ PrincipalPolicy.WindowsPrincipal)
Una vez establecida la directiva, utilice la propiedad Thread.CurrentPrincipal para recuperar el principal que encapsula al usuario de Windows actual. Dado que el tipo de valor devuelto de la propiedad es IPrincipal, debe convertir el resultado a un tipo WindowsPrincipal. El código siguiente inicializa un nuevo objeto WindowsPrincipal en el valor del principal asociado al subproceso actual.
WindowsPrincipal MyPrincipal = (WindowsPrincipal) Thread.CurrentPrincipal;
Dim MyPrincipal As WindowsPrincipal = _ CType(Thread.CurrentPrincipal, WindowsPrincipal)
Para crear un objeto WindowsPrincipal para una validación única
Inicialice un nuevo objeto WindowsIdentity llamando al método WindowsIdentity.GetCurrent estático, que consulta la cuenta de Windows actual y coloca la información sobre esa cuenta en el objeto de identidad recientemente creado. En el código siguiente se crea un nuevo objeto WindowsIdentity y se inicializa en el usuario autenticado actual.
WindowsIdentity MyIdentity = WindowsIdentity.GetCurrent();
Dim MyIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
Cree un nuevo objeto WindowsPrincipal y pásele el valor del objeto WindowsIdentity creado en el paso anterior.
WindowsPrincipal MyPrincipal = new WindowsPrincipal(MyIdentity);
Dim MyPrincipal As New WindowsPrincipal(MyIdentity)
Una vez creado el objeto, se puede utilizar uno de los diversos métodos existentes para validarlo. Para obtener más información, vea Comprobaciones de seguridad basada en funciones.