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); }
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); }