【问题标题】:Web ReportViewer authenticationWeb ReportViewer 身份验证
【发布时间】:2010-06-02 13:25:21
【问题描述】:

在使用网络报告查看器查看 SSRS 报告时,我需要一些有关身份验证的帮助。

在 IIS 中,我仅设置了“Windows 身份验证”,未选中“匿名访问”以及“目录安全”选项卡中的其他检查。我的网站中的结果是 WindowsIdentity.GetCurrent() 返回 ASPNET 用户和 Request.LogonUserIdentity 登录用户的域帐户。在承载 ReportViewer 控件的页面上,我以编程方式模拟 Request.LogonUserIdentity,然后设置所有报告/服务器属性并刷新 ServerReport,但是这将返回“请求失败,HTTP 状态 401:未授权”。错误,我 100% 确定 Request.LogonUserIdentity 可以访问报告。为了证明模拟有效,WindowsIdentity.GetCurrent() 在模拟后返回与 Request.LogonUserIdentity 相同的用户,当我需要查询数据库时,我使用的是相同的模拟,只是针对特定用户。

我注意到在 ReportViewer1 上,ServerReport 属性有一个 ImpersonationUser 属性,但我无法设置它,也找不到在哪里设置。

任何人都可以解释一下吗?我已经为此工作了好几天了....

【问题讨论】:

    标签: authentication reporting-services reportviewer


    【解决方案1】:

    尚不清楚您为什么需要自己进行模拟。如果您使用 Windows 身份验证并禁用了匿名访问,那么只需让 ASP.NET 将最终用户的凭据传送到 Reporting Server。尝试将 <identity> 元素添加到您的 web.config 文件中:

    <identity impersonate="true" />
    

    您可能遇到的另一个问题(如果您的报告服务器与您的 Web 服务器位于不同的计算机上)是 NTLM double-hop problem,您可能需要配置 Kerberos 以支持多台计算机上的凭据委派。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 2012-06-16
      • 2016-07-03
      • 1970-01-01
      相关资源
      最近更新 更多