2011-06-25 39 views
0

我試圖將我的dot net應用程序中的loged用戶名傳遞給Report Services。這是我的代碼:從報表查看器傳遞參數到SSRS

  string usern = WindowsIdentity.GetCurrent().Name.ToString(); 
      ReportViewer1.ProcessingMode = ProcessingMode.Remote; 
      ReportViewer1.ServerReport.ReportServerUrl = 
      new Uri(@"http://myserver/reportServer/"); 
      ReportViewer1.ServerReport.ReportPath = @"/path/subpath/reportName"; 
      ReportParameter[] rp = new ReportParameter[1]; 
      rp[0] = new ReportParameter("paramTest", usern); 
      ReportViewer1.ServerReport.SetParameters(rp); 
      ReportViewer1.ServerReport.Refresh(); 

當我在本地運行,一切正常,我可以看到我在參數文本框的用戶名。在服務器上運行它,我得到了「NT AUTHORITY \ NETWORK SERVICE」而不是我的用戶名。 任何想法?在此先感謝

+0

* *代碼是如何在服務器上運行的?作爲服務?作爲一個ASP.NET應用程序? – slugster

+0

這是一個ASP應用程序,上面的代碼是在PageLoad方法 – Adolfo

回答

1

您的評論確認我的懷疑 - NT AUTHORITY\NETWORK SERVICE您的Windows身份在服務器上 - 它是identity the application pool正在運行。

這裏有三個環節,如果你使用的是Windows身份驗證,可以幫助您得到您的應用程序的用戶名:

+0

好吧,它現在正在工作。所有這些方法都有效,重要的是改變對Windows身份驗證的匿名訪問。我只希望這個改變不會影響我的其他應用程序。謝謝,我真的很感謝你的幫助 – Adolfo

+0

@Adolfo,酷,如果它的工作,那麼不要忘記標記爲答案(點擊答案左側的複選標記)。 – slugster

相關問題