5

Tengo la tarea de generar un PDF desde una página HTML en un sitio web ASP.NET. (Algo que los usuarios pueden guardar distancia/impresión muy bien)Haciendo que Windows Authentication y WKHTMLToPDF jueguen bien

he encontrado que wkhtmltopdf hace el trabajo muy bien haber mirado esto:

Calling wkhtmltopdf to generate PDF from HTML

Sin embargo, tengo un problema. Nuestro sitio web es un sitio de intranet y usa la Autenticación de Windows. Puedo pasar mis credenciales a WKHTMLToPDF usando --username y --password y demostrarme a mí mismo que la página web se genera como es de esperar.

El problema es este: ¿Qué hacer para cada usuario diferente que entra en nuestro sistema? Puedo pensar en una serie de posibles soluciones que pueden no funcionar y esperaba que alguien me diera algunas opiniones/orientación, ya que parece que he llegado al final de mis investigaciones.

soluciones posibles:

  1. ¿Hay alguna forma en ASP.NET que puedo extraer de usuario y contraseña de los usuarios credenciales para pasar a wkhtmltopdf? Sospecho que la respuesta a esto es "no y por razones sensatas"
  2. ¿Es posible ejecutar el Proceso y pasar las credenciales de los Usuarios? Puedo ver que es posible configurar el nombre de usuario/contraseña en el proceso (aunque no sé cómo pasaría esto de las credenciales ya que la contraseña parece no estar expuesta). ¿Quizás hay otro método para pasar credenciales directamente a Process?
  3. Podría crear un sitio web PDFGenerator separado que no use la autenticación de Windows. Podría exportar el HTML/CSS/imágenes desde el sitio web protegido a un directorio compartido y luego redirigir a los usuarios al sitio web de PDFGenerator para generar el PDF desde el HTML sin tener que preocuparme por la autenticación (y limpiaría HTML, etc. después de PDF generado).

Sospecho que 3 es la solución que voy a terminar persuing pero ya que es esencialmente una gran solución para hacer frente al problema de autenticación Estoy muy abierto a mejores sugerencias o ayudar en 1 o 2!

Respuesta

2

Puede configurar la suplantación en web.config:

http://msdn.microsoft.com/en-us/library/aa292118%28v=vs.71%29.aspx

Esto significa que cualquier cosa que se ejecuta como se hace el usuario. Sin embargo, esto puede causar problemas en ciertos escenarios. Esto significa que el sitio se está ejecutando con las credenciales del usuario para esa sesión en lugar de la identidad del grupo de aplicaciones, y tendrá que pasar por aros para configurar la aplicación web para que funcione correctamente y aún así sea segura.

Debe tener en cuenta que todo lo que ejecute asumirá las credenciales del grupo de aplicaciones en la mayoría de las configuraciones normales. Puede cambiar la cuenta para el grupo de aplicaciones. Esto podría permitirle mantener todo bajo control al permitir el acceso solo al usuario que ejecuta el grupo de aplicaciones.

Otras alternativas pueden ser tener otra aplicación aparte de la principal que utiliza la suplantación. Esto podría ser más fácil de administrar que convertir toda su aplicación para usar suplantación. (No tengo detalles de su proyecto, por lo que es difícil hacer una recomendación concreta aquí)

+0

Esto no hace exactamente lo que necesito, pero no es diferente al enfoque que estoy usando en mi prototipo en el momento. Básicamente, tengo una cuenta de ventanas ficticias que estoy usando con fines de autenticación. Así que almaceno los créditos de la cuenta en forma encriptada en el web.config y los utilizo cuando llamo a wkhtmltopdf. No es glorioso, pero parece funcionar y, por lo tanto, puedo usarlo ... –

Cuestiones relacionadas