예제 #1
0
        public ServerStazione(ISensore sensore, IGestioneUtentiController gestioneUtentiController, byte[] certBytes, string password)
        {
            _sensore = sensore;
            _gestioneUtentiController = gestioneUtentiController;

            // Carica il certificato
            _certificato = new X509Certificate2(certBytes, password, X509KeyStorageFlags.UserKeySet);
        }
예제 #2
0
        public SensoreSorgenteAdapter(ISensore sensore, GestoreEventi gestoreEventi)
        {
            _sensore            = sensore;
            this._gestoreEventi = gestoreEventi;

            // Aggiungo l'adapter ai ricevitori del sensore
            sensore.RicevitoriDatiSensore += OnRisultatiGrezziDisponibili;
        }
예제 #3
0
        public ServerStazione(ISensore sensore, IGestioneUtentiController gestioneUtentiController, string certFile, string password)
        {
            _sensore = sensore;
            _gestioneUtentiController = gestioneUtentiController;

            // Assicurati che il certificato esista
            if (!File.Exists(certFile))
            {
                throw new CertificatoNonTrovatoEccezione("The specified certificate cannot be found.");
            }

            // Carica il certificato
            _certificato = new X509Certificate2(certFile, password, X509KeyStorageFlags.UserKeySet);
        }
예제 #4
0
        public TrasmissioneDatiWorker(IGestioneUtentiController gestioneUtentiController, ISensore sensore, SslStream sslStream)
        {
            _gestioneUtentiController = gestioneUtentiController;

            _sensore   = sensore;
            _sslStream = sslStream;

            // Crea i lettori e scrittori binari
            _binaryWriter = new BinaryWriter(sslStream);
            _binaryReader = new BinaryReader(sslStream);

            // Ottengo le credenziali utente
            string user = _binaryReader.ReadString();
            string pass = _binaryReader.ReadString();

            Console.WriteLine("Richiesta connessione per utente :{0}", user);

            // Verifico le credenziali
            // TODO Log della connessione remota
            IUtente utenteRemoto = gestioneUtentiController.ValidaCredenziali(user, pass);

            if (utenteRemoto != null)  // Credenziali accettate
            {
                // Invio la risposta
                _binaryWriter.Write("ACCEPT");

                Console.WriteLine("Connessione accettata");

                // Creo il thread di networking
                _threadNetwork = new Thread(new ThreadStart(Run));

                // Registra il worker come ricevitore del sensore per ricevere i dati
                // in tempo reale
                sensore.RicevitoriDatiSensore += OnRisultatiGrezziDisponibili;
            }
            else  // Credenziali non accettate
            {
                // Invio la risposta
                _binaryWriter.Write("INVALID");

                Console.WriteLine("Connessione non accettata");

                throw new CredenzialiInvalideEccezione("Le credenziali non sono valide");
            }
        }
예제 #5
0
 public SorgenteFactory(CreatoreConnessioni creatoreConnessioni, ISensore sensore, GestoreEventi gestoreEventi)
 {
     this.creatoreConnessioni = creatoreConnessioni;
     _sensore       = sensore;
     _gestoreEventi = gestoreEventi;
 }