2011-06-25 18 views
0

私のドットネットアプリケーションからログインしたユーザー名を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

は、ここでは、Windows認証を使用している場合は、あなたのアプリケーションのユーザーの名前を取得するのを助けることができる3つのリンクですこのコードはサーバー上でどのように動作していましたか?サービスとして? ASP.NETアプリケーションとして? – slugster

+0

これはASPアプリケーションです。上記のコードはPageLoadメソッド – Adolfo

答えて

1

コメントは私が疑われるものを確認 - NT AUTHORITY\NETWORK SERVICEサーバー上のWindowsのアイデンティティである - それはidentity the application poolのように実行されています。 *

+0

にあります。すべてのメソッドが機能したので、重要なのは、Windows認証への匿名アクセスを変更することでした。私はこの変更が彼の残りのアプリケーションに影響を与えないことを願っています。ありがとう、私は本当にあなたの助けに感謝します。 – Adolfo

+0

@Adolfo、それがうまくいたら、答えとしてマークすることを忘れないでください(答えの左側にあるチェックマークをクリックしてください)。 – slugster

関連する問題