es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Impersonación de usuario en .Net multiplataforma

Estoy creando una aplicación de consola .Net 6 que implica leer/escribir archivos en rutas de archivos especificadas por el usuario. A veces, estas rutas de archivos están en recursos compartidos de red que requieren credenciales separadas para acceder. Si solo me preocupara por la ejecución en Windows, usaría WindowsIdentity.RunImpersonated. Sin embargo, como su nombre indica y al mirar el código de muestra que contiene la línea [DllImport(“advapi32.dll”, SetLastError = true, CharSet = CharSet.Unicode)], estoy bastante seguro de que esto solo funcionará en Windows y no en Linux o MacOS.

¿Existe alguna función multiplataforma en .Net 6 (o tal vez alguna otra biblioteca de terceros) que se pueda utilizar para la suplantación de usuario, para poder realizar cosas como Directory.EnumerateFiles() en recursos compartidos de red que requieren diferentes credenciales?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en desarrollo .NET y de plataforma cruzada, recomendaría investigar la clase System.Net.NetworkCredential en .NET 6, la cual permite especificar credenciales alternativas al acceder a recursos de red. Esto se puede utilizar junto con la clase CredentialCache para almacenar en caché las credenciales para uso futuro.

    Otra opción a considerar es la biblioteca CrossPlatformImpersonator, la cual proporciona una solución de plataforma cruzada para la suplantación de usuarios en .NET. Esta biblioteca utiliza bibliotecas específicas de la plataforma como advapi32.dll en Windows, pero también ofrece implementaciones para otras plataformas como Linux y MacOS.

    En general, existen varias opciones disponibles para la suplantación de usuarios de plataforma cruzada en .NET 6, incluyendo funcionalidad incorporada y bibliotecas de terceros, las cuales deberían satisfacer sus necesidades al acceder a recursos de red que requieren credenciales separadas.

Comments are closed.