public Session Connect(string userName, string password, bool discoverUrl = false) { Session session = new Session(m_application); session.UseDnsNameAndPortFromDiscoveryUrl = true; if (session.UserIdentity == null) { session.UserIdentity = new UserIdentity(); session.UserIdentity.UserName = userName; session.UserIdentity.Password = password; session.UserIdentity.IdentityType = UserIdentityType.UserName; } EndpointDescription endPointDescription = null; if (discoverUrl) { var endpoints = OpcDiscovery.GetEndpoints(m_serverUrl); foreach (var endpoint in endpoints) { //let's use clear text endpoint just for testing if (endpoint.SecurityMode == MessageSecurityMode.None) { endPointDescription = endpoint; break; } } } else { endPointDescription = new EndpointDescription(m_serverUrl); } if (endPointDescription != null) { //session.Connect(endPointDescription, RetryInitialConnect.No, session.DefaultRequestSettings); session.Connect(m_serverUrl, SecuritySelection.None); } else { throw new ArgumentException("Cant find a matching endpoint at: " + m_serverUrl); } return(session); }
public Session Connect(bool discoverUrl = true) { Session session = new Session(m_application); if (session.UserIdentity == null) { session.UserIdentity = new UserIdentity(); } session.UserIdentity.IdentityType = UserIdentityType.Anonymous; EndpointDescription desc = null; if (discoverUrl) { var endpoints = OpcDiscovery.GetEndpoints(m_serverUrl); foreach (var endpoint in endpoints) { if (endpoint.EndpointUrl.Trim().ToLower() == m_serverUrl.Trim().ToLower() && endpoint.SecurityMode == MessageSecurityMode.None) { desc = endpoint; break; } } } else { desc = new EndpointDescription(m_serverUrl); } if (desc != null) { session.Connect(desc, RetryInitialConnect.Yes, session.DefaultRequestSettings); //session.Connect(m_serverUrl, SecuritySelection.None); } else { throw new ArgumentException("Cant find a matching endpoint at: " + m_serverUrl); } return(session); }