Solved

On-Click transfer to Report Viewer

Posted on 2014-02-11
1
333 Views
Last Modified: 2014-02-20
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();
            Session["memberid"].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();
        }
    }

    [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;
        }
    }
}

Open in new window

0
Comment
Question by:Shade22
1 Comment
 
LVL 25

Accepted Solution

by:
apeter earned 500 total points
ID: 39854621
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.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

735 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question