2024年4月10日发(作者:)

报表设计工具FineReport如何实现.Net模板访问权限设置

1.问题描述

如下图集成报表后,希望不同的用户登录,所能看到的报表是不同的,没有权限的用户

查看报表时提示没有权限:

2.解决方案

通过数字签名的方式来验证发送的报表请求,需要带有与

FR

约定的数字签名方式签名

之后的信息,

FR

验证签名信息合法才允许访问报表,否则返回没有权限。

注:本方案使用

MD5+RSA

数字签名方式。

3.实现步骤

3.1

前提准备

报表工程:如直接使用内置

Jetty

服务器中的报表工程

WebReport

,端口为

8075

用户系统:如用户工程

PFDemo

发布于

IIS

服务器,端口为

80

,可省;

报表工程已经配置了身份验证,并实现了单点登录,如其中存在用户

A/123

B/123

3.2

载入

FR

提供的

数字签名库

下载

FR

提供的

数字签名库;

在用户

.net

系统中载入这两个数字签名库。

3.3

用户系统中添加一个

web

接口给报表工程提供公钥

用户系统中提供一个

web

接口,如创建一个

,可以通过

localhost/

来获取公钥,代码如下:

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind=""

Inherits=""%>

在页面

Page_Load

事件中调用我方提供的

dll

的接口,返回公钥信息,对应的后台

cs

为:

usingSystem;

c;

;

;

trols;

;

namespacePFDemo

{

publicpartialclassgetKey:

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!IsPostBack)

{

try

{

//

获得公钥的两个参数,传回

Stringmodulus=licKeyModulus();

Stringexponent=licKeyExponent();

(modulus+"&"+exponent);

}

catch(Exceptione1)

{

("error");

}

return;

}

}

}