I know this for a long time, but can be useful for any other new visitors,
I decided to pass the username, password and domain when requesting SSRS reports, so I created one class that implements IReportServerCredentials.
public class ReportServerCredentials : IReportServerCredentials { #region Class Members private string username; private string password; private string domain; #endregion #region Constructor public ReportServerCredentials() {} public ReportServerCredentials(string username) { this.Username = username; } public ReportServerCredentials(string username, string password) { this.Username = username; this.Password = password; } public ReportServerCredentials(string username, string password, string domain) { this.Username = username; this.Password = password; this.Domain = domain; } #endregion #region Properties public string Username { get { return this.username; } set { this.username = value; } } public string Password { get { return this.password; } set { this.password = value; } } public string Domain { get { return this.domain; } set { this.domain = value; } } public WindowsIdentity ImpersonationUser { get { return null; } } public ICredentials NetworkCredentials { get { return new NetworkCredential(Username, Password, Domain); } } #endregion bool IReportServerCredentials.GetFormsCredentials(out System.Net.Cookie authCookie, out string userName, out string password, out string authority) { authCookie = null; userName = password = authority = null; return false; } }
when calling SSRS Reprots, put the following code snippet
ReportViewer rptViewer = new ReportViewer(); string RptUserName = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUser"]); string RptUserPassword = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUserPassword"]); string RptUserDomain = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUserDomain"]); string SSRSReportURL = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportURL"]); string SSRSReportFolder = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportFolder"]); IReportServerCredentials reportCredentials = new ReportServerCredentials(RptUserName, RptUserPassword, RptUserDomain); rptViewer.ServerReport.ReportServerCredentials = reportCredentials; rptViewer.ServerReport.ReportServerUrl = new Uri(SSRSReportURL);
SSRSReportUser, SSRSReportUserPassword, SSRSReportUserDomain, SSRSReportFolder are defined in web.config files.
Dhruv Patel Oct 24 '16 at 14:29 2016-10-24 14:29
source share