2010-01-27 87 views
0

我们需要在具有服务器端php和php身份验证的网站中使用SQL Server Reporting Services。目前我们有两个单独的登录/认证 - php和SQL Server Reporting Services(我相信它使用类似于ASP.NET认证的东西)。我们只需要php登录,我们也需要报告是安全的(即报告不能向匿名用户开放)。从PHP调用SQL Server Reporting Services - 身份验证问题

我们的一些报告只会在一天中的设定时间发生变化,因此我们可以通过编程生成pdf,将它们存储在数据库或某处,并让php在用户提出请求时检索它们。这非常简单。

问题出在一个报告总是在变化,因此我们需要在用户发出请求时从数据库中即时生成pdf。这需要php直接调用报告服务(目前我们有嵌入在网页中的报告服务链接,用户点击这个链接,然后必须输入二级报告服务/ windows-type登录)。

为了解决这个问题,我想我们可以在可执行文件中打包报告服务,然后让PHP调用可执行文件 - 然后将可执行文件吐出来,然后将这个php传回给用户。我们甚至可以将报告服务封装成只能从托管php的Web服务器访问的CGI。有没有人尝试过这样的事情?它会起作用吗?它只需要PHP身份验证,仍然是安全的?

Reporting Services的可能是2005年或者2008年或

回答

0

我有类似的情况,这对于现在的我刚刚分配第二,报告服务密码,谁需要它的人照顾。就我而言,我的web应用程序会根据我们的Novell LDAP数据进行身份验证,但似乎没有办法将其传递到报告服务框。我还没有解决它,但我的想法是创建一个GUID或随机字符串点击报告生成按钮,将它存储在一个表中,将其添加到报告请求(查询字符串或邮政),然后把条件在驱动报告的sproc中,以便如果该表中不存在该字符串,则不会返回任何数据。这些字符串可以定期删除。 rube goldberg的种类,但可能比您提及的可执行封装更容易,也可能比我尝试构建自己的报告服务的ldap提供程序时最好,因为这种情况下该用户仍需要进行第二次登录。

+0

感谢您的回答。因此,您是否将Reporting Services设置为允许匿名访问(即根本不需要第二次登录,每个人都可以进入),并且GUID将充当安全密钥? 这是一个有趣的想法。我认为钥匙需要传递给客户端?如果是这样,这是否仍然会导致安全漏洞,或者它会好吗? – 2010-01-27 17:36:14

+0

重点需要允许匿名访问。我不会说我真的认为通过。我想这可以用于一个单独的文件夹,这个文件夹可以包含在此基础上运行的报告,从而允许其他文件夹使用更严格的权限。如果你想给超级用户提供完整的报表管理器权限。 – 2010-01-27 19:52:55