Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 348
  • 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();
            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
Shade22
Asked:
Shade22
1 Solution
 
apeterCommented:
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

Transaction-level recovery for Oracle database

Veeam Explore for Oracle delivers low RTOs and RPOs with agentless transaction log backup and transaction-level recovery of Oracle databases. You can restore the database to a precise point in time, even to a specific transaction.

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