Page tree
Skip to end of metadata
Go to start of metadata

默认情况下,用户登录验证是基于葡萄城报表中的用户信息,亦即只有用户输入的用户名和密码与葡萄城报表中已经定义的用户帐号匹配时,用户才能成功登录葡萄城报表系统。

葡萄城报表提供独有的安全提供程序机制,可以基于业务系统的用户信息表或者其他第三方系统的登录验证机制,执行用户登录信息的验证。也就是说,用户可以使用其他业务系统中已有的用户名和密码,登录到葡萄城报表系统。这种安全提供程序机制完美解决了用户需要多套用户名和密码登录到多个不同系统的问题。

关于安全提供程序的配置,参见系统管理的相关章节:

3.3.3 安全提供器


如果需要基于您自己的业务系统的用户信息来执行登录验证,就需要编写自定义的安全提供程序。自定义安全提供程序是一个DLL,可以使用Visual Studio 2012或更高版本的C#或者VB.NET语言编写,只需要实现两个葡萄城报表所要求的接口(Interface)即可。具体的编写方法如下:

(1)在Visual Studio 2012(或更高版本)中创建一个新的工程(Project)。

(2)引用葡萄城报表的ActiveReports.Server.Extensibility.dll文件。

该文件在葡萄城报表安装目录下的Site\Bin子目录下。默认路径为:C:\葡萄城报表服务器\Site\Bin

(3)实现ISecurityProviderFactory接口。

该接口规定有两个方法:

Create:创建安全提供程序的实例。

GetSupportedSettings:获取本安全提供程序支持的设置选项,应返回一个字符串列表。

(4)实现ISecurityProvider两个接口。

该接口规定的方法如下:

CreateToken:使用用户名和密码信息,创建一个令牌。这是整个接口的核心方法,您需要在此方法中完成用户登录信息验证。如果验证成功,就为当前用户创建一个报表系统的令牌。

DisposeToken:销毁令牌,用户注销时将被调用。

FilterRoles:返回用户所属的角色列表。

GetAdminContext:返回管理员用户的上下文信息。

GetCacheKeySalt:为报表缓存提供的Key。

GetUserContext:返回普通用户的上下文信息。这个实现用户数据权限的关键方法,此方法返回的用户上下文信息(比如用户名、所属部门等)可作为参数,作为数据集的数据查询条件。

GetUserDescription:返回用户的描述信息。

ValidateToken:检验令牌的有效性,防止盗取令牌的非法访问。


为了帮助学习安全提供程序的编程方法,葡萄城报表的SDK中提供有一个示例,位于安装目录的SDK\Samples文件夹下,默认路径是:C:\葡萄城报表\SDK\Samples\ActiveTunes.SecurityProvider 。

编写好的安全提供程序,在葡萄城报表系统中部署、配置的方法,参见:

3.3.3 安全提供器





  • No labels