Invocar un reporte alojado en el servidor de Reporting Services C#

Para invocar un reporte que se encuentre dentro del servidor de reporte solo debemos especificar los datos dentro de nuestro ReportViewer  de la siguiente manera:


ReportViewer1.ProcessingMode = ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://Servidor//");
ReportViewer1.ServerReport.ReportPath = "Reportes" + "/" + "Reporte.rdl";

 //de esta manera podemos obtener los parámetros que va recibir el reporte y pasárselos:
 List param = new List();
 var listPara = ReportViewer1.ServerReport.GetParameters();
 for (int i = 0; i < listPara.Count; i++)
 {
 param.Add(new ReportParameter(listPara[i].Name, "Valor Prametro",false));
 }
 ReportViewer1.ServerReport.SetParameters(param);
 ReportViewer1.ServerReport.Refresh();

Si el reporte necesita credenciales para conectarse se debe usar de la siguiente manera:

ReportViewer1.ServerReport.ReportServerCredentials = new CustomReportCredentials("User", "Password", "Dom");

y para usar la clase de CustomReportCredentials debemos crearla dentro de la pagina donde este llamando el reporte de la siguiente manera:

<!-- wp:paragraph -->
<p><code><br>
public class CustomReportCredentials : Microsoft.Reporting.WebForms.IReportServerCredentials<br>
{</code><br>
<code><br>
// local variable for network credential.<br>
private string _UserName;<br>
private string _PassWord;<br>
private string _DomainName;<br>
private WindowsIdentity _ImpersonationUser;<br>
public CustomReportCredentials(string UserName, string PassWord, string DomainName)<br>
{<br>
_UserName = UserName;<br>
_PassWord = PassWord;<br>
_DomainName = DomainName;<br>
// _ImpersonationUser = ImpersonationUser;<br>
}<br>
public WindowsIdentity ImpersonationUser<br>
{<br>
get<br>
{<br>
return null; // not use ImpersonationUser<br>
}<br>
}<br>
public ICredentials NetworkCredentials<br>
{<br>
get<br>
{</code><br>
<code><br>
// use NetworkCredentials<br>
return new NetworkCredential(_UserName, _PassWord, _DomainName);<br>
}<br>
}<br>
public bool GetFormsCredentials(out Cookie authCookie, out string user, out string password, out string authority)<br>
{</code><br>
<code><br>
// not use FormsCredentials unless you have implements a custom autentication.<br>
authCookie = null;<br>
user = password = authority = null;<br>
return false;<br>
}</code></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>}</p>
<!-- /wp:paragraph -->