Suponed el escenario en que deseaís que un servicio web ejecute código con las credenciales de un usuario que se conecta autenticandose con autenticación integrada a un front end web que a su vez se conecta a un servicio. O incluso con las credenciales con las que corre un smart client.
Simplemente tenéis que configurar los sitios web con autenticación integrada…
… y configurar l a aplicación web y la aplicación asp.net que expone los servicios web para que hagan impersonación. Esto se hace en el web.config de la aplicación web y de la aplicación asp.net del servicio añadiendo lo siguiente dentro de la sección <system.web>:
<identity impersonate=»true» />
Una vez configurado esto teneís tener en cuenta que cuando llamaís al sevicio a través del proxy habreís de pasarle las credenciales del usuario que se ha logeado actualmente para ello teneís que hacer la llamada asi:
CredentialCache mycredentials = new CredentialCache();
credentials.Add(new Uri(proxy.Url), «NTLM», CredentialCache.DefaultNetworkCredentials);
proxy.Credentials = mycredentials;