Затем я подключаюсь ко всем трем именам пользователей/типам подключения, используя отдельные экземпляры UAExpert. Однако установленные мною ролевые разрешения не оказывают никакого влияния, и все три экземпляра UAExpert могут выполнять одни и те же операции на узле. Что я делаю не так?
Ура!
Я пытаюсь добавить определенные разрешения ролей для определенных пользователей на определенный узел. Для этого я использую этот код: [code]private BaseDataVariableState createThing(NodeId requestedNodeId, NodeId requestedDataType, string requestedBrowseName, BaseObjectState parentNode, bool x) { BaseDataVariableState variable = new BaseDataVariableState(parentNode);
if (FindNodeInAddressSpace(variable.NodeId) != null) { Console.WriteLine("Node succesfully created with NiD: " + variable.NodeId); } return variable; }
private RolePermissionTypeCollection addPredefinedRolePermissions() { RolePermissionTypeCollection listPermissions = new RolePermissionTypeCollection(); var limbo = new RolePermissionType(); limbo.Permissions = (uint)PermissionType.None; limbo.RoleId = Opc.Ua.ObjectIds.WellKnownRole_Observer; var user = new RolePermissionType(); user.Permissions = (uint)(PermissionType.Browse | PermissionType.Read | PermissionType.ReadRolePermissions | PermissionType.Write);; user.RoleId = Opc.Ua.ObjectIds.WellKnownRole_Anonymous; var god = new RolePermissionType(); god.Permissions = (uint)(PermissionType.Browse | PermissionType.Read | PermissionType.ReadRolePermissions | PermissionType.Write | PermissionType.Call | PermissionType.ReadHistory | PermissionType.ReceiveEvents); god.RoleId = Opc.Ua.ObjectIds.WellKnownRole_Supervisor; return listPermissions; } [/code] Затем я подключаюсь ко всем трем именам пользователей/типам подключения, используя отдельные экземпляры UAExpert. Однако установленные мною ролевые разрешения не оказывают никакого влияния, и все три экземпляра UAExpert могут выполнять одни и те же операции на узле. Что я делаю не так? Ура!