¿Cómo obtener el nombre de usuario de Windows cuando la identidad impersonate = "true" en asp.net?

Estoy creando una aplicación intranet mvc asp.net a la que todos los miembros de la empresa deberían tener acceso. Necesito ejecutar el sitio web suplantado para el acceso a la base de datos, etc., pero quiero saber quién es cada usuario.

Cuando miroPage.User.Identity.Name esta en blanco ¿Es posible obtener el nombre de la cuenta de Windows del usuario aunque el sitio se ejecute suplantado?

Editar: Aquí hay un poco más de información. Tengo un sitio en IIS 6 que se ejecuta con acceso anónimo habilitado. El sitio se ejecuta bajo una cuenta del sistema que tiene acceso a la base de datos (porque todos los empleados no tienen acceso a la base de datos).

Mi web.config tiene<authentication mode="Windows" /> y<identity impersonate="true"/>

Mi objetivo es que los usuarios no tengan que iniciar sesión, ya que el hecho de que hayan iniciado sesión en nuestra red (y el hecho de que el sitio no tenga una IP externa) es una autenticación suficiente. Solo me gustaría saber quién es el usuario para hacer un seguimiento de los cambios que realizan, etc.

Respuestas a la pregunta(4)

Su respuesta a la pregunta