關鍵詞: Visio Studio2010 WinForm Sqlserver2008 ReportingService 報表身份驗證
問題分析:
Sqlserver2008自帶的Reporting Service報表提供了功能強大,多種樣式可供選擇的報表服務;利用它本身的Reporting站點,咱們能夠很方便的輸入用戶名密碼,經過驗證,瀏覽相應的報表;
Visio Studio2010提供了reportViewer控件,能夠很方便的實現與站點某個報表的動態綁定;
但這個控件沒有提供權限用戶名及密碼輸入的直接接口,這樣在瀏覽是就形成http status 401: Unauthorized…異常,那麼咱們在WinForm的代碼中該作如何設置,以經過報表的身份驗證?
咱們查詢不少中文網站,都沒有相應的信息,最後仍是一個英文網站找到的解決方案,並經過了測試,展示出來,與你們共享之!
方案:
在C# FormLoad中做以下處理
private void Form2_Load(object sender, EventArgs e)
{
reportViewer1.ProcessingMode=Microsoft.Reporting.WinForms.ProcessingMode.Remote;
reportViewer1.ServerReport.ReportPath = @"/Sales/Sales Summary";
reportViewer1.ServerReport.ReportPath = @"/Sales/Customer list";
reportViewer1.ServerReport.ReportServerUrl = new System.Uri(@"http://192.168.1.3/reportserver", System.UriKind.Absolute);
this.reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = new System.Net.NetworkCredential(@"Bill1", "Password", @"")//這是report服務器上的本地帳號
this.reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = new System.Net.NetworkCredential(@"Bill2", "Pa55word", @"DomainName")//這是域帳號
reportViewer1.RefreshReport();
}
測試經過
注意:若是出現數據庫異常,這可能與您report報表的數據源設置有關係,若是您的數據源設置爲windows集成驗證,而當前登陸用戶對數據庫沒有權限,就會形成數據庫鏈接異常