FastReport使用交流,FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何进行web报表的用户身份验证,提高数据安全性

来源:   发布时间:2019-10-15   浏览:147次

每次我们生成Web报表时,ajax请求都会导致处理程序的执行:WebResource.axd和FastReport.Export.axd。在ASP.Net应用程序中使用带有axd扩展名的文件从dll库获取资源:图像、javascript和样式。

结果,我们得到一个HTML报表文件。但是,由于已生成报表并将其放置在IIS缓存中,因此,知道生成的报表ID(根据请求生成)后, 不法分子就可以轻松获取它。如果报表包含机密数据,则这是一个潜在的安全问题。解决这种情况的方法可以是用户身份验证。也就是说,如果报表是由特定用户调用的,那么只有他才能获得该报表的副本。

我们可以检查http请求以进行用户身份验证,但这不是出路。恶意因素也总是可以欺骗请求。最好的解决方案是会话身份验证。直到最近,FastReport.Net才提供这种功能。但是在版本2019.3.13中,出现了一个事件,用于通过WebReport中的asp处理程序加载的报表资源的ajax身份验证。

在显示报表之前,将执行WebReport.CustomAuth事件。此时,您可以检查会话中的用户。这是使用新事件的示例:

public ActionResult Index()
 {
 Session["User"] = "Father Brown";
...
 webReport.CustomAuth += WebReport_CustomAuth;
...
 }
...
 private void WebReport_CustomAuth(object sender, CustomAuthEventArgs e)
 {
 e.AuthPassed = (e.Context.Session["User"] as string) == "Father Brown";
 }
...

如您所见,首先,在创建报表之前,我们在Http会话中设置用户名,然后订阅该事件。在事件处理程序中,我们执行用户检查。如果其他用户请求该报表,则其在会话中的名称将不同,并且该报表将不会显示。此示例显示了用户身份验证,但是您可以修改实现到您自己的版本。

因此,我们可以通过执行报表身份验证来显着提高数据安全性。



产品介绍 | 下载试用 | 优惠活动 | 在线客服

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [http://www.fastreportcn.com/]
本文地址:http://www.fastreportcn.com/post/2458.html

相关产品: FastReport.Net,


联系我们
  • 重庆总部 023-68661681 400-700-1020
  • 北京公司 010-56705895
购买
  • sales@evget.com
合作
  • business@evget.com