• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 349
  • Last Modified:

On-Click transfer to Report Viewer

I am currently trying to generate statements on the fly for members of my website.  When the user selects a month from the dropdown menu and click "generate", it will create a pdf statement for them to view and download.  I will be using a "Server.Transfer" to send my info to the report page.  I have 4 parameters I will be passing along; billmonth, memberid, sitecode, and companycode.

Here is my c# for the page the member will be clicking for the statement.

        protected void btn_genbill_Click(object sender, EventArgs e)
            Session["sitecode"] = ConfigurationManager.AppSettings["sitecode"].ToString();
            Server.Transfer("billing.aspx?Report=Form9854&billmonth=" + ddl_1099.SelectedValue);

Open in new window

Here is the c# for the billing page (I got this code from http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials%28v=vs.90%29.aspx but haven't filled it out yet since I have no clue on this sort of stuff.)

using System;
using System.Data;
using System.Configuration;
using System.Net;
using System.Security.Principal;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Reporting.WebForms;

namespace MyWebSite
    public partial class _Default : System.Web.UI.Page
        protected void Page_Init(object sender, EventArgs e)
            ReportViewer1.ServerReport.ReportServerCredentials =
                new MyReportServerCredentials();

    public sealed class MyReportServerCredentials :
        public WindowsIdentity ImpersonationUser
                // Use the default Windows user.  Credentials will be
                // provided by the NetworkCredentials property.
                return null;

        public ICredentials NetworkCredentials
                // 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 =

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

                // Password
                string password =

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

                // Domain
                string domain =

                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;

Open in new window

1 Solution
Does your report server expects authentication details ? if so , above is the sample to pass the credential from your web form to your report server.

"MyReportServerCredentials" is a separate class which should used inside the asps which is going to  call/transfer the request to report server.

Hope this helps.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

7 new features that'll make your work life better

It’s our mission to create a product that solves the huge challenges you face at work every day. In case you missed it, here are 7 delightful things we've added recently to monday to make it even more awesome.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now