Tengo algunos problemas al usar SSRS actualmente. Tengo un sitio web ASP.NET que usa Autenticación de Windows. Eso funciona bien y sé que el usuario actual del sitio web es el usuario que actualmente está conectado.Autenticación de Windows con SSRS ASP.NET ReportViewer y servicio web
En este sitio se encuentra un formulario de Web ReportViewer. Esto funciona bien cuando no configuro credenciales. Sin embargo, al mirar el registro de ejecución de los informes en SQL Server, el nombre de usuario aparece como DOMINIO \ MÁQUINA.
He tratado de establecer la propiedad ReportServerCredentials a una clase como la siguiente:
[Serializable]
public class ReportCredentials : IReportServerCredentials
{
public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = null;
password = null;
authority = null;
return false;
}
public WindowsIdentity ImpersonationUser
{
get {
return (WindowsIdentity)HttpContext.Current.User.Identity;
}
}
public ICredentials NetworkCredentials
{
get {
return null;
}
}
}
Sin embargo, cuando este código se ejecuta ahora consigo una vuelta 401 del servicio web y el informe Servicio.
¿Qué está pasando? Ambos están en el mismo dominio. Quiero usar el usuario actual y no el equipo actual. Si ejecuto el informe en el servidor de informes, aparece bajo el nombre de usuario correcto, pero no desde mi sitio web.
Yeh I intentó que la primera, pero todavía tiene un 401 :( – Lloyd
En realidad, yo decir una mentira, debe haber sido almacenado en caché. El informe ahora se ejecuta, pero el nombre de usuario se registra como \t PERSONAL \ UKBRISDDWRKA424 $ que es la máquina. Grrr. – Lloyd