用户角色管理工具开发指南

在大型数据库中,用户可能会有多个登录账户,这可能会导致数据管理上的混乱。为了解决这个问题,开发了一款用户角色管理工具,它可以帮助在不集成LDAP的情况下,通过CUA来管理用户。这个工具最初只能用于搜索和创建用户,分配单一角色。随着时间的推移,增加了对用户角色的更多操作功能。

在安装这个程序之前,需要满足一些先决条件。首先,需要安装.NET 3.0,这通常已经在Windows XP及以上版本的电脑上安装好了。其次,需要安装SAPGUI7.xx,这是SAP的前端展示服务,用于连接SAP的后端系统。

程序中使用了以下BAPI函数:

  • BAPI_USER_GETLIST
  • BAPI_USER_GET_DETAIL
  • BAPI_USER_CREATE1
  • BAPI_USER_CHANGE
  • BAPI_USER_UNLOCK
  • BAPI_USER_LOCK
  • RFC_READ_TABLE

这些BAPI函数的导入/导出参数可以通过SAP中的BAPI事务或探索功能模块来获取。例如,锁定用户的操作如下:

public bool sapLockUser(string sUserLogin) { bool bOk = true; if (sUserLogin == "") return false; SAPFunctionsOCX.Parameter pUserName = (SAPFunctionsOCX.Parameter)m_iBAPI_USER_LOCK.get_Exports("USERNAME"); ((SAPFunctionsOCX.Parameter)pUserName).Value = sUserLogin; bOk = m_iBAPI_USER_LOCK.Call(); if (bOk) { SAPTableFactoryCtrl.Tables tTables = (SAPTableFactoryCtrl.Tables)m_iBAPI_USER_LOCK.Tables; showReturn(ref tTables); } return bOk; }

在数据库中进行搜索时,需要设置一个搜索范围。在LDAP中,使用逆波兰表示法(从右到左)。可以在搜索语句中添加自己的构造。

(&(cn=?)(objectCategory=person)(mail=*)(userAccountControl=512))

在SAP的功能模块中,使用另一种技术,需要填充SELECTION_EXP结构。可以在BAPI事务的帮助中找到如何填充它的信息,或者在SAP的文档中找到:SAP Identity Management APIs。

如果函数模块的导入参数是一个表,如SELECTION_EXP的情况,需要使用一个包装函数,因为C#互操作和SAP的COM对象之间存在封送错误。有许多方法可以解决这个问题,可以在Lim Bio Liong的博客中看到。

在包装DLL中,添加了一个新函数:SetDateTime。现在idl描述如下:

interface IoRowSetVal : IDispatch{ [id(1), helpstring("method SetVal")] HRESULT SetVal([in,out] VARIANT* pvRow, [in] BSTR vsColumn, [in] BSTR vsValue); [id(2), helpstring("method SetDateTime")] HRESULT SetDateTime([in,out] VARIANT* pvRow, [in] BSTR vsColumn, [in] VARIANT vVal); };

程序中的数据结构:

首先,必须告诉,大多数程序的可能性是由数据结构决定的。这个程序中的数据结构如下:

用户界面是围绕这个结构创建的,以解决日常任务。

从用户的角度来看,这个工具的工作方式如下:

首先,需要在配置标签中填写初始参数,如下所示:

第一次这个标签是隐藏的。要获取它,需要使用系统菜单取消隐藏:

当填写了配置标签后,可以从界面标签开始使用程序:

可以在'Last First Name'或'SAP User Login'字段中输入搜索词。如果在SAP中找到了登录名,它们可以在临时列表框中查看。如果选中了'with roles'复选框,那么分配给用户的所有角色也会被加载。登录名可以存储在内存列表框中;因为每次搜索过程都会清除临时列表框。按'Enter'开始搜索:这与按'Search'按钮相同。

要搜索公司,可以在公司组合框中输入公司名称的一部分,然后按键盘上的'Enter'。

必须告诉,所有对用户和角色的操作都是在内存中进行的,只有两个按钮会改变SAP中用户的内容:界面标签上的黄色'Change/Create'和角色标签上的黄色'Save User in CUA',以及复选框'Blocked'会改变用户登录的状态:锁定/未锁定!

当找到登录名后,可以切换到角色标签来查看角色或比较用户角色:

在这里可以删除、添加或更改角色(只有在按下'Save User in CUA'按钮时才会保存到SAP!)

有时需要比较不同用户的角色:

如果角色在用户之间复制,可以保存选定的用户,并为其设置一组新的角色。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485