예제 #1
0
        public override void deletePassword(Scheme scheme, int port, string hostName, string user)
        {
            string url = new HostUrlProvider().withPath(false).get(scheme, port, user, hostName, null);

            PreferencesFactory.get().deleteProperty(url);
        }
예제 #2
0
        public bool isReachable(Host h)
        {
            if (h.getProtocol().getScheme().name().Equals("http") ||
                h.getProtocol().getScheme().name().Equals("https"))
            {
                try
                {
                    WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
                    WebRequest.DefaultCachePolicy          = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
                    var url = new HostUrlProvider().withUsername(false).withPath(true).get(h);
                    if (Log.isDebugEnabled())
                    {
                        Log.debug($"Reachability test with url {url}");
                    }

                    WebRequest request = WebRequest.Create(url);
                    request.Timeout = 10000;
                    using (request.GetResponse())
                    {
                        return(true);
                    }
                }
                catch (WebException e)
                {
                    if (Log.isDebugEnabled())
                    {
                        Log.debug($"WebException thrown with status {e.Status}");
                    }

                    switch (e.Status)
                    {
                    case WebExceptionStatus.ProtocolError:
                    case WebExceptionStatus.TrustFailure:
                    case WebExceptionStatus.Success:
                        return(true);
                    }

                    return(false);
                }
                catch (Exception e)
                {
                    Log.error("Generic exception while checking for reachability", e);
                    return(false);
                }
            }

            try
            {
                if (Log.isDebugEnabled())
                {
                    Log.debug($"Try TCP connection to {h.getHostname()}:{h.getPort()}");
                }

                TcpClient c = new TcpClient(h.getHostname(), h.getPort());
                c.Close();
                return(true);
            }
            catch (SocketException e)
            {
                return(false);
            }
        }
예제 #3
0
        // Login Password
        public override void addPassword(Scheme scheme, int port, String hostname, String user, String password)
        {
            string url = new HostUrlProvider().withPath(false).get(scheme, port, user, hostname, null);

            PreferencesFactory.get().setProperty(url, DataProtector.Encrypt(password));
        }