当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
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.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方法
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.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;
}
}
}