彩票走势图

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

原创|使用教程|编辑:郑恭琳|2019-10-15 16:02:51.143|阅读 282 次

概述:我们以往生成报表文件时无法进行用户身份验证,这样就会存在一些数据信息安全隐患。直到最近,FastReport.Net提供了能够提高数据安全性的新功能。本文着重介绍该新功能,并提供了相关实用示例供报表用户参考取用。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

每次我们生成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会话中设置用户名,然后订阅该事件。在事件处理程序中,我们执行用户检查。如果其他用户请求该报表,则其在会话中的名称将不同,并且该报表将不会显示。此示例显示了用户身份验证,但是您可以修改实现到您自己的版本。

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



产品介绍 | 下载试用 | 优惠活动 | 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP