丙通全国分支机构: 广州总部 |
欢迎光临丙通MRO官网,我们竭诚为您服务!BTONE专注行业,提供更专业便捷的MRO供应!

我的购物篮0

登录 | 注册 |

行业资讯

TEST-删除: Unicode ang

TEST-删除: Unicode angle bracketssummary

TEST-删除: 文件上传测试

TEST-删除: 文件上传测试summary

TEST-删除: 实体编码测试

TEST-删除: 实体编码测试summary

2026年MRO智能采购新趋势

2026年MRO智能采购新趋势:数字化供应链如何赋能企业降本增效2026年MRO采购数字化转型趋势分析:从平台化采购、智能化选型、供应链协同、数据驱动决策到绿色采购五大核心趋势,探讨数字化MRO供应链如何赋能企业降本增效。丙通MRO一站式工业品采购服务。

MRO工业品采购数字化转型

MRO工业品采购数字化转型:丙通商城如何助力企业降本增效随着制造业迈向精益化与智能化,MRO(维护、维修与运营)工业品采购正经历从传统线下采购向数字化平台迁移的深刻变革。丙通商城依托大数据与供应链整合能力,为企业提供一站式MRO采购解决方案,帮助工厂降低库存成本、提升设备稼动率。

2026年MRO工业品采购数字

2026年MRO工业品采购数字化转型加速,丙通MRO引领供应链升级新趋势丙通MRO了解到,2026年工业品采购领域数字化转型进入深水区。随着智能制造、工业4.0等概念的持续深化,MRO工业品供应链正经历前所未有的变革。丙通MRO凭借完善的全球供应体系与数字化服务能力,为企业客户提供更专业、更优质的工业品采购解决方案。

技术方案

热门资讯

社会百象

您现在的位置: 首页 > 资讯中心 > 技术方案 > 施耐德Q6108如何获得当前登录用户所属的角色

施耐德Q6108如何获得当前登录用户所属的角色

2013-01-10

浏览次数:1096

施耐德Q6108如何获得当前登录用户所属的角色

 

适用于:

  CitectSCADA 7.10,7.20

 

概述:

如何获得当前登录用户所属的角色呢?

 

解决方法:

Citect7.10中用户隶属于角色,这些角色共同来定义用户访问的区域和权限。当前活动

角色的列表在运行时并不能获得,但是可以通过调用DevOpen()和DevFind()函数来查找

users.dbf来获得当前的角色。

 

如果用户使用Windows集成帐户,那么Windows的组会链接到Citect中的角色。这时

就不能通过查找users.dbf来查找当前角色了,因为当前用户并不在Citect中定义。一个变

通的方法是在角色的“进入命令”中查找当前活动角色。

施耐德Q6108如何获得当前登录用户所属的角色将下列Cicode添加到您的工程中。然后打开工程管理器。按下F2键查看详细内容。将

每一个角色的“进入命令”设置为RoleSet("<角色名称>")来保存角色名称,将“退出命令”

设置为  RoleSet(""),使其在退出时清空。

 

INT    mnMaxRoles = 16;

STRING  msCurrentRoles[16];

STRING  msCurrentUser = "";

INT    mnCurrentRole = 0;

 

 

//Add  the  specified  role  to  the  current  user's  roles  list.  This  is  called  by  the  Role's  Entry

Command.

//Call RoleSet("") from the Role's Exit command to clear the list of roles.

FUNCTION

RoleSet(STRING sRole = "")

 

  STRING sUserName = Name();

  EnterCriticalSection("RoleSet");

  IF StrLength(sRole) > 0 THEN

    IF msCurrentUser <> sUserName THEN

      msCurrentUser = sUserName;

      mnCurrentRole = 0;

END

  

    IF mnCurrentRole < mnMaxRoles THEN

      msCurrentRoles[mnCurrentRole] = sRole;

      ErrLog("RoleSet('" + sRole + "') added role " + mnCurrentRole:#);

      mnCurrentRole = mnCurrentRole + 1;

    ELSE

      ErrLog("RoleSet() Too many roles to store");

    END

  ELSE

    ErrLog("RoleSet() clearing roles");

  

    mnCurrentRole = 0;

    msCurrentUser = "";

  END

  LeaveCriticalSection("RoleSet");  

END

 

//Check if the current user has the specified role

//

//Returns TRUE if the user has the role or the role was blank, otherwise FALSE.

//

INT

FUNCTION

UserHasRole(STRING sRole)

  

    INT    nRole = 0;

STRING  sUser = Name();

 

  //If no role was specified, allow access

  IF StrLength(sRole) = 0 THEN

    RETURN TRUE;

  END

    FOR nRole = 0 TO mnMaxRoles - 1 DO

      IF msCurrentRoles[nRole] = sRole THEN                        

        RETURN TRUE;

      END

    END                       

    RETURN FALSE;

END

 

例如:

“角色名称”:Admin

“Windows组名”:Administrators

“全局权限”:1...8

“进入命令”:RoleSet("Admin")

“退出命令”:RoleSet("")

 

那么活动的角色列表将会被保存在msCurrentRoles[]数组中。检查当前用户是否属于某

一个角色,请使用Cicode:UserHasRole(sRole)。

例如:UserHasRole("Admin")

 信息来源:施耐德官方网站。

本文地址:http://www.btone-mro.com/BtoneInform/newsContent.aspx?id=1058


Copyright 2008-2011 广州丙通电子元件有限公司 粤ICP备19120971号-1
地址:广州市黄埔区埔南路63号科研办公楼201-208房 电话:020-31701070 传真:020-31702851

知名品牌  |  XML地图      需要MRO工业品的朋友欢迎来丙通MRO采购!