• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2019

    文檔首頁>>FastReport.Net教程2019>>如何進(jìn)行web報(bào)表的用戶身份驗(yàn)證,提高數(shù)據(jù)安全性

    如何進(jìn)行web報(bào)表的用戶身份驗(yàn)證,提高數(shù)據(jù)安全性


    每次我們生成Web報(bào)表時(shí),ajax請求都會導(dǎo)致處理程序的執(zhí)行:WebResource.axd和FastReport.Export.axd。在ASP.Net應(yīng)用程序中使用帶有axd擴(kuò)展名的文件從dll庫獲取資源:圖像、javascript和樣式。

    結(jié)果,我們得到一個(gè)HTML報(bào)表文件。但是,由于已生成報(bào)表并將其放置在IIS緩存中,因此,知道生成的報(bào)表ID(根據(jù)請求生成)后, 不法分子就可以輕松獲取它。如果報(bào)表包含機(jī)密數(shù)據(jù),則這是一個(gè)潛在的安全問題。解決這種情況的方法可以是用戶身份驗(yàn)證。也就是說,如果報(bào)表是由特定用戶調(diào)用的,那么只有他才能獲得該報(bào)表的副本。

    我們可以檢查http請求以進(jìn)行用戶身份驗(yàn)證,但這不是出路。惡意因素也總是可以欺騙請求。最好的解決方案是會話身份驗(yàn)證。直到最近,FastReport.Net才提供這種功能。但是在版本2019.3.13中,出現(xiàn)了一個(gè)事件,用于通過WebReport中的asp處理程序加載的報(bào)表資源的ajax身份驗(yàn)證。

    在顯示報(bào)表之前,將執(zhí)行WebReport.CustomAuth事件。此時(shí),您可以檢查會話中的用戶。這是使用新事件的示例:

    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";
     }
    ...

    如您所見,首先,在創(chuàng)建報(bào)表之前,我們在Http會話中設(shè)置用戶名,然后訂閱該事件。在事件處理程序中,我們執(zhí)行用戶檢查。如果其他用戶請求該報(bào)表,則其在會話中的名稱將不同,并且該報(bào)表將不會顯示。此示例顯示了用戶身份驗(yàn)證,但是您可以修改實(shí)現(xiàn)到您自己的版本。

    因此,我們可以通過執(zhí)行報(bào)表身份驗(yàn)證來顯著提高數(shù)據(jù)安全性。



    產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();