Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }