OWIN Web API Windows Service - Suplantación de identidad de Windows

Esta es una aplicación de intranet.

Tengo una aplicación de autohospedaje WebAPI Owin que se ejecuta en un servidor de Windows con una cuenta de servicio.

El front end es AngularJS que se comunica con la base de datos a través de esta API web.

Lo que quiero es cuando se invoca cualquier acción en la API que requiere interacción con la base de datos, las credenciales de usuario se utilizan para conectarse a la base de datos y no a la cuenta de servicio en sí.

Estoy utilizando la autenticación de Windows, y he habilitado la autenticación Ntlm en httpListener en la clase de Inicio, y puedo autenticar al usuario.

Cuando envío una solicitud a la API web, puedo ver que Thread.CurrentPrincipal devuelve el usuario actual, pero la conexión de la base de datos falla, porque está intentando conectarse a la base de datos utilizando la cuenta de servicio y no las credenciales del usuario.

Por favor, dígame cómo pasar las credenciales de usuario a la base de datos desde la API web

Respuestas a la pregunta(2)

Su respuesta a la pregunta