我正在尝试将用户名从我的dot net应用程序传递到Report Services。这是我的代码:
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 :(得分:1)
您的评论确认了我怀疑的内容 - NT AUTHORITY\NETWORK SERVICE
您的服务器上的Windows身份标识 - identity the application pool正在运行。
如果您使用Windows身份验证,以下三个链接可帮助您获取应用程序用户的名称: