出于安全角度的考虑,一般情况下使用BUA .NET客户端是无法修改上下文的应用系统参数的,这些参数在Web.config文件的BUAClient配置节进行修改。如果你想要访问另一个应用系统的权限、角色等信息。你需要做以下两件事情:
1、具有被访问应用系统的密码(ApplicationPassword)。
2、通过代码修改BUA客户端的运行时配置,参考代码如下:
// 复制一份运行时配置用于动态修改完成以后恢复回去
var oldConfig = RuntimeConfig.Instance.Clone();
var config = RuntimeConfig.Instance;
config.ApplicationCode = "xxx";
config.ApplicationPassword = "xxx";
// 调用BUA客户端提供的接口
......
config.ApplicationCode = oldConfig.ApplicationCode;
config.ApplicationPassword = oldConfig.ApplicationPassword;
1、打开管理中心(Administration)站点的Web.config,查看<appSettings>下名为"IntegrateContainer"的值,例如:CentralAdministration
2、访问BUA的权限管理,编辑要整合的应用系统。修改应用系统的"应用系统集成模式"字段。格式:#{IntegrateContainer}${StartPrivilegeCode}#
{IntegrateContainer}:对应管理中心的配置
{StartPrivilegeCode}:起始权限菜单代号,如果希望从根权限加载可以为空
示例:#CentralAdministration$BUA#
# 问题现象
启用DES加密以后,调用BUA的SOA服务有一定机率出现"调用UserBFO中的GetUserByUid方法出错"。开启SOA下的log4net日志以后并查看详细错误如下:
System.Security.Cryptography.CryptographicException:不正确的数据。
# 问题原因
由于BUA 2.5以前版本使用的DES加密类内部使用了共享变量导致多个调用出现了变量篡改。
# 解决方案
下载附件的dll,更新BUA的SOA Web服务。
Beyondbit.Security.zip (2.7KB)