Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SSRS 2005-配置用户身份验证/授权_Asp.net_Security_Reporting Services - Fatal编程技术网

Asp.net SSRS 2005-配置用户身份验证/授权

Asp.net SSRS 2005-配置用户身份验证/授权,asp.net,security,reporting-services,Asp.net,Security,Reporting Services,我已经创建了一个ASP.NET 2.0 web应用程序,并希望使用SSRS 2005进行报告 web应用程序使用表单身份验证和自定义角色进行授权。我已经创建了报告并将其部署到我们的SQLServer2005机箱中 我有两个选项可以将报告集成到我的应用程序中: 从我的应用程序中链接到SSR。链接将指定参数和选项。我确保该链接仅为授权用户显示,并使用适当的参数链接到正确的报告 使用ReportViewer控件并使用该控件显示报告。所有处理将由SSRS完成 但是,我不确定在Reporting Serv

我已经创建了一个ASP.NET 2.0 web应用程序,并希望使用SSRS 2005进行报告

web应用程序使用表单身份验证和自定义角色进行授权。我已经创建了报告并将其部署到我们的SQLServer2005机箱中

我有两个选项可以将报告集成到我的应用程序中:

  • 从我的应用程序中链接到SSR。链接将指定参数和选项。我确保该链接仅为授权用户显示,并使用适当的参数链接到正确的报告

  • 使用ReportViewer控件并使用该控件显示报告。所有处理将由SSRS完成

  • 但是,我不确定在Reporting Services框的IIS中配置安全性的最佳方法。当前它设置为Windows集成身份验证。此外,报告服务具有我的用户名和浏览器角色

    并非我的应用程序的所有用户都有广告登录。此外,该应用程序是在互联网上,我不想打开SSR超过必要的。同时,我希望它对我们的用户来说是无缝的,因为我不希望SSRS提示输入用户名和密码


    实现这一目标的最佳方式是什么?我是否应该创建一个虚拟广告用户,然后使用它在ASP.NET应用程序和SSR之间进行通信?如果不是这样,实现我所需要的一切的最简单方法是什么?

    我们使用web服务界面与SSR进行通信,并使用相同的广告帐户与报表查看器控件进行通信。至于权限,我们有自定义访问列表 asp.net页面在向用户提供报告之前进行检查。这将附加到用户名。我们已经将SSRS框从互联网上关闭,用户访问应用程序的唯一方法是通过应用程序,这样访问列表控制就足够了

    对于报表视图控制,我们必须创建一个自定义凭据类,用于传递从IReportServerCredentials继承的AD用户名和密码。AD用户名和密码保存在xml文件中

    希望这有帮助。

    +1法赫德

    除了使用IReportServerCredentials接口外,还可以使用ReportServerConnection的实例并将其分配给报表查看器控件。我们将用户名、密码和域(如果需要)存储在web.config文件中

    ReportServerConnection credentials = new ReportServerConnection('username', 'password');
    ReportViewer1.ServerReport.ReportServerCredentials = credentials;
    

    我们最近将SSR的SSO身份验证方法(SQL Server 2008 R2)与使用表单身份验证的自定义web应用程序集成在一起。我发现这两篇文章非常有用,并概述了完成SSO解决方案所需的一切

    以下是基本步骤,但我建议您完整阅读这些文章:

  • 创建验证管理器,该管理器将处理特定于系统的身份验证
  • 为SSRS创建您的登录页面(我们的页面,如示例所示,只需调用LogonUser,然后重定向到报表管理器)-仅当您想使用SSRS的报表管理器时,才需要这样做
  • 在将ReportingService2010和ReportExecution2005服务添加到项目中后,您需要围绕这些服务创建一个代理包装器,并覆盖GetWebRequest和GetWebResponse方法,以便在SSR和应用程序之间传递SSRS身份验证票证
  • 创建实现IAAuthenticationExtension和IAAuthorizationExtension的自定义身份验证模块(请参见第2部分)
  • 配置SSRS以使用自定义表单身份验证模块
  • 如果要使用报表管理器,则需要确保配置SSRS报表管理器以处理应用程序授权票证:

  • 完成这些步骤后,您可以使用报表管理器,也可以直接在应用程序中实现web服务

    Fahad,这个广告帐户是一个不存在的用户,只是用于SSR?是的。只需给予足够的权限即可访问SSR。此用户还需要具有数据库的DataReader访问权限。我在SSRS框中创建了一个本地用户,并授予其SSRS浏览器权限和SQL数据库中的DataReader权限。但是,我的reportviewer没有显示任何数据。我缺少什么?没错。ReportServerConnection构造函数被重载以同时获取域。