利用ReportViewer读取Reporting Service数据

当Reporting Service 为Windows集成验证;解决域验证HTTP:401错误.

1.新建Report_ExcessQty.aspx; 通过VS.Net工具栏拖入ReportViewer控件

     < rsweb:ReportViewer ID = " ctl_rv_Report "  runat = " server "  Font - Names = " Verdana "  Font - Size = " 8pt "
        Height
= " 400px "  ProcessingMode = " Remote "  Width = " 100% "  InternalBorderColor = " Transparent " >
        
< ServerReport ReportPath = " /Report/Report_AA(文件夹目录/文件名称) "  ReportServerUrl = http: // 10.192.124.29/reportserver />
     </ rsweb:ReportViewer >

2.创建类:MyReportViewerCredential.cs,实现接口方法IReportServerCredentials

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Data;
using System.Configuration;
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;
using System.Security.Principal;
using System.Net;
/// <summary>
/// Summary description for MyReportViewerCredential
/// </summary>
public class MyReportViewerCredential : IReportServerCredentials
{
    
public MyReportViewerCredential()
    {
        
//
        
// TODO: Add constructor logic here
        
//
    }



    
private string _username;
    
private string _password;
    
private string _domain;
    
public Uri ReportServerUrl;

    
/// <summary>
    
/// 
    
/// </summary>
    
/// <param name="username"></param>
    
/// <param name="password"></param>
    
/// <param name="domain"></param>
    public MyReportViewerCredential(string username, string password, string domain)
    {
        _username 
= username;
        _password 
= password;
        _domain 
= domain;
    }


    
#region IReportServerCredentials Members
    
/// <summary>
    
/// 
    
/// </summary>
    public WindowsIdentity ImpersonationUser
    {
        
get
        {
            
return null;
        }
    }
    
/// <summary>
    
/// 
    
/// </summary>
    public System.Net.ICredentials NetworkCredentials
    {
        
get
        {
            
return new NetworkCredential(_username, _password, _domain);
        }
    }
    
/// <summary>
    
/// 
    
/// </summary>
    
/// <param name="authCookie"></param>
    
/// <param name="user"></param>
    
/// <param name="password"></param>
    
/// <param name="authority"></param>
    
/// <returns></returns>
    public bool GetFormsCredentials(out Cookie authCookie,
        
out string user, out string password, out string authority)
    {
        authCookie 
= null;
        user 
= _username;
        password 
= _password;
        authority 
= _domain;
        
return false;
    }

    
#endregion
}

3.实现Report_ExcessQty.aspx.CS方法

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 System.Security.Principal;
using Microsoft.Reporting.WebForms;

public partial class Report_ExcessQty : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
if (!Page.IsPostBack)
        {
            MyReportViewerCredential rvc 
= new MyReportViewerCredential
            (
"dongw""1234""CORP"); //登录名,密码,域
            ctl_rv_Report.ServerReport.ReportServerCredentials 
= rvc;
        }
    }
}

 

 

转载于:https://www.cnblogs.com/DODONG/archive/2009/06/10/1500363.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值