To render SharePoint server reports, set the ReportServerUrl, ReportPath, and ReportServiceUrl properties as shown in the following code snippet.
@(Html.Bold().ReportViewer("viewer")
.ReportServiceUrl("/api/SharePointReports")
.ReportServerUrl("http://<servername>/reportserver$instanceName")
.ReportPath("http://<servername>/reportserver$instanceName/SSRSSamples/Territory Sales.rdl")
)In SharePoint integrated mode, the
ReportServerUrlwill be same as your site URL. TheReportPathis relative to the Report Server URL with the file extension.
The forms credentials are required to load the SharePoint integrated SSRS report from the specified SharePoint integrated SSRS Report Server using the Report Viewer. Specify the ReportServerFormsCredential property in the Web API Controller OnInitReportOptions method.
[NonAction]
public void OnInitReportOptions(ReportViewerOptions reportOption)
{
//Add ReportServerFormsCredential for server
reportOption.ReportModel.ReportServerFormsCredential = new ReportServerFormsCredential("ssrs", "RDLReport1");
}The shared data source credentials can be added to the DataSourceCredentials property to connect with the database.
[NonAction]
public void OnInitReportOptions(ReportViewerOptions reportOption)
{
//Add ReportServerFormsCredential and data source credentials
reportOption.ReportModel.ReportServerFormsCredential = new ReportServerFormsCredential("ssrs", "RDLReport1");
reportOption.ReportModel.DataSourceCredentials.Add(new BoldReports.Web.DataSourceCredentials("<database>", "ssrs1", "RDLReport1"));
}Data source credentials should be added to shared data sources that do not have credentials in the connection strings.