我还没有这方面的代码,但我打算将asp.net会话ID作为参数发送到BIRT
报告引擎。
然后在BIRT
中的“Initialize”事件中,我打算在相同的asp.net应用程序上调用一个页面来检查会话ID是否有效,有几个问题:
您认为这是有效的情况吗?
您知道任何解决此问题的网站吗?
P.S的主要目的是安全性,因为我不希望人们在.NET应用程序的上下文之外使用BIRT
URL。
答案 0 :(得分:2)
第一条规则。决不。永远。永远。使用会话进行安全性。不要这样做。会话不安全,不可靠,并非用于安全。
其次,你不能让BIRT呼叫一个ASP页面,因为这将是一个服务器端的呼叫,它不会有来自用户的会话cookie,因此即使做你正在努力赢得的东西#39;工作。实际上,BIRT成了客户。
有许多方法可以控制对网站的访问。例如,您可以生成一个传递给BIRT服务器的访问密钥,然后BIRT服务器可以解密密钥并通过加密验证密钥是否有效。您可以加密生成密钥的日期和时间,并使密钥仅在短时间内有效。然后解密BIRT服务器上的密钥,比较时间并知道用户是否有权访问。
然而,更好的方法是使用OAuth之类的东西来控制访问。您的asp.net和BIRT服务器通过客户端交换密钥,进行验证等等,并且您知道客户端具有访问权限,因为它们具有承载令牌。