public SampleHistorian(OpcNodeManager owner, OpcVariableNode node)
            : base()
        {
            this.Owner = owner;
            this.Node  = node;

            this.Node.AccessLevel     |= OpcAccessLevel.HistoryReadOrWrite;
            this.Node.UserAccessLevel |= OpcAccessLevel.HistoryReadOrWrite;
            this.Node.IsHistorizing    = true;

            this.syncRoot = new object();

            this.History = SampleHistory <OpcHistoryValue>
                           .Create(@".\History.db", node.Id);

            this.ModifiedHistory = SampleHistory <OpcModifiedHistoryValue>
                                   .Create(@".\History.Modified.db", node.Id);
        }
Ejemplo n.º 2
0
        internal bool CanWrite(OpcVariableNode node, OpcUserIdentity sessionIdentity)
        {
            var entries = this.AccessControl.Entries;

            foreach (var entry in entries)
            {
                if (entry.Principal.Identity is SystemIdentity serverIdentity)
                {
                    if (serverIdentity.DisplayName == sessionIdentity.DisplayName)
                    {
                        return(entry.IsAllowed(OpcRequestType.Write) &&
                               serverIdentity.IsAllowed(node.Id.ValueAsString));
                    }
                }
            }

            return(false);
        }