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;
}
}
}
发布评论