2009-10-05 5 views
7

No encuentro mucha documentación sobre cómo usar la Autenticación de Windows en una aplicación WPF. No hubiera pensado que sería diferente a cualquier aplicación que no sea de WPF, pero parece que sí lo es. Quiero ir a Propiedades de mi proyecto -> Aplicación y asegurarme de que la Autenticación de Windows esté activada, pero esa opción no está disponible en una aplicación de WPF (como confirma el siguiente documento).¿Cómo usar la Autenticación de Windows en WPF?

http://msdn.microsoft.com/en-us/library/tzdks800.aspx

si ignoro todo eso y simplemente miro My.User.Name (VB), que está vacío. Esto me dice que, de alguna manera, la Autenticación de Windows no está habilitada.

Parece que hay un concepto que me falta; ¿alguien podría señalarme en la dirección correcta?

Mi plan es usar un atributo PrincipalPermission para restringir el acceso a ciertas partes de mi aplicación (o tal vez a toda la aplicación, aplicándola a Application_Startup()).

Respuesta

7

respuesta de Itowlson era correcta, sino también, con el fin de utilizar el PrincipalPermissionAttribute en cualquier método, usted tiene que hacer primero el director ventanas del principal actual llamando:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal) 
5

La razón por la que esto no funciona en WPF es que estos servicios se implementan en la clase WindowsFormsApplicationBase de VB, que no se usa en las aplicaciones de WPF. Para hacer lo mismo usted mismo:

Llame al WindowsIdentity.GetCurrent() para obtener la identidad del usuario de Windows. Puedes obtener el nombre de esto.

Si desea establecer específicamente el subproceso principal como lo hace la opción Autenticación de Windows VB, llame al Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); esto es exactamente lo que hace WindowsFormsApplicationBase internamente.

EDIT: Si prefiere la API My.User, parece que debería poder hacer lo mismo llamando al My.User.InitializeWithWindowsUser(). No he probado esto sin embargo.

Cuestiones relacionadas