Pages

Men

rh

7/17/2014

How to Call SSRS from Page load event in Asp.net with c#

   ReportViewer1.ServerReport.ReportServerUrl = new Uri(System.Configuration.ConfigurationManager.AppSettings["ReportServerURL"].ToString());

                    ReportViewer1.ServerRepor.ReportPath = "/" + System.Configuration.ConfigurationManager.AppSettings["ReportFolderName"].ToString() + "/ReportName";


                    ReportParameter[] myparam = new ReportParameter[2];


                    myparam[0] = new ReportParameter("UserId", Session["UserID"].ToString().Trim());


                    myparam[1] = new ReportParameter("Role", Session["ColumnHide"].ToString().Trim());


                    ReportViewer1.ServerReport.SetParameters(myparam);


                    ReportViewer1.ServerReport.Refresh();




Also we have to add the code in the aspx.cs page.

    protected void Page_Init(object sender, EventArgs e)
        {
            ReportViewer1.ServerReport.ReportServerCredentials =
                new MyReportServerCredentials();
        }


        [Serializable]
        public sealed class MyReportServerCredentials :
            IReportServerCredentials
        {
            public WindowsIdentity ImpersonationUser
            {
                get
                {
                    // Use the default Windows user.  Credentials will be
                    // provided by the NetworkCredentials property.
                    return null;
                }
            }

            public ICredentials NetworkCredentials
            {
                get
                {
                    // Read the user information from the Web.config file. 
                    // By reading the information on demand instead of
                    // storing it, the credentials will not be stored in
                    // session, reducing the vulnerable surface area to the
                    // Web.config file, which can be secured with an ACL.

                    // User name
                    string userName =
                        ConfigurationManager.AppSettings
                            ["MyReportViewerUser"];

                    if (string.IsNullOrEmpty(userName))
                        throw new Exception(
                            "Missing user name from web.config file");

                    // Password
                    string password =
                        ConfigurationManager.AppSettings
                            ["MyReportViewerPassword"];

                    if (string.IsNullOrEmpty(password))
                        throw new Exception(
                            "Missing password from web.config file");

                    // Domain
                    string domain =
                        ConfigurationManager.AppSettings
                            ["MyReportViewerDomain"];

                    if (string.IsNullOrEmpty(domain))
                        throw new Exception(
                            "Missing domain from web.config file");

                    return new NetworkCredential(userName, password, domain);
                }
            }

            public bool GetFormsCredentials(out Cookie authCookie,
                        out string userName, out string password,
                        out string authority)
            {
                authCookie = null;
                userName = null;
                password = null;
                authority = null;

                // Not using form credentials
                return false;
            }
        }



Information:

In web.config file , we have to add this code in  

<configuration>
  <appSettings>

<add key="ReportFolderName" value="Test_Reports" />
 <add key="MyReportViewerUser" value="TestUser" />
    <add key="MyReportViewerPassword" value="TestPassword" />
    <add key="MyReportViewerDomain" value="YourDomainName" />

 </appSettings>
</configuration>



No comments :

Post a Comment