Ejemplo n.º 1
0
        private void LoginToServer(string username, string password, string host)
        {
            _pingTimer.Enabled = false;
            _client = new DataClientClass(username);
            _logClient = new DataNetLogService();

            _serverHost = host;
            _logClientService = ScsServiceClientBuilder.CreateClient<IDataNetLogService>(new ScsTcpEndPoint(host, 443), _logClient);
            _clientService = ScsServiceClientBuilder.CreateClient<IDataAdminService>(new ScsTcpEndPoint(host, 443), _client);

            _clientService.Connected += ScsClient_Connected;

            try
            {
                _clientService.Connect();
                _logClientService.Connect();
                _client.login += LoggedIn;
                _client.block += BlockedByAdmin;
                _client.loginFailed += LoginFailed;
                _client.changePrivilages += ChangedPrivileges;
                _client.logout += DeletedClient;
                _client.symblolListRecieved += GroupSymbolChange;
                _client.symbolListChanged += RefreshSymbols;
                _client.groupChanged += RefreshGroups;
                _client.logoutServer += ServerStatusChanged;
                _client.busySymbolListReceived += BusySymbolChanged;
                _client.symbolPermissionChanged += RefreshSymbols;
                _clientService.Disconnected += OnServerCrashed;

                var logmsg = new DataAdminMessageFactory.LogMessage { Symbol = username, LogType = DataAdminMessageFactory.LogMessage.Log.Login, Group = "" };

                _logClientService.ServiceProxy.SendSimpleLog(logmsg);
                Settings.Default.connectionHost = _startControl.ui_textBox_ip.Text;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                if (_startControl != null)
                    _startControl.Invoke((Action)(() =>
                    {
                        ToastNotification.Show(_startControl, "Can't connect. IP is incorrect");
                        _startControl.ui_buttonX_logon.Enabled = true;
                    }
                        ));

                return;
            }
            var loginMsg = new DataAdminMessageFactory.LoginMessage(username, password, 't');
            try
            {
                _clientService.ServiceProxy.Login(loginMsg);

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 2
0
        private void LoginToServer(string username, string password, string host, bool isMaster)
        {
            _logonThread = new Thread(
                () =>
                {
                    _pingTimer.Enabled = false;
                    _client = new DataClientClass(username);
                    _logClient = new DataNetLogService();
                    _logClientService =
                        ScsServiceClientBuilder.CreateClient<IDataNetLogService>(new ScsTcpEndPoint(host, 443),
                            _logClient);
                    _clientService =
                        ScsServiceClientBuilder.CreateClient<IDataAdminService>(new ScsTcpEndPoint(host, 443), _client);
                    _clientService.Connected += ScsClient_Connected;

                    try
                    {
                        _clientService.Connect();
                        _logClientService.Connect();

                        _client.login += LoggedIn;
                        _client.block += BlockedByAdmin;
                        _client.loginFailed += LoginFailed;
                        _client.changePrivilages += ChangedPrivileges;
                        _client.logout += DeletedClient;
                        _client.symblolListRecieved += GroupSymbolChange;
                        _client.symbolListChanged += RefreshSymbols;
                        _client.groupChanged += RefreshGroups;
                        //_client.logoutServer += ServerStatusChanged;
                        _client.busySymbolListReceived += BusySymbolChanged;
                        _client.symbolPermissionChanged += RefreshSymbols;
                        _clientService.Disconnected += OnServerCrashed;

                        var logmsg = new DataAdminMessageFactory.LogMessage
                        {
                            Symbol = username,
                            LogType = DataAdminMessageFactory.LogMessage.Log.Login,
                            Group = ""
                        };

                        _logClientService.ServiceProxy.SendSimpleLog(logmsg);
                        Settings.Default.scHost = _startControl.ui_textBox_ip.Text;
                        Settings.Default.scHostSlave = _startControl.ui_textBox_ip_slave.Text;
                        Invoke((Action) (() =>
                        {
                            labelItem_server.Text = isMaster ? "Master" : "Slave";
                            styleManager1.MetroColorParameters = new MetroColorGeneratorParameters(Color.White,
                                isMaster ? Color.Green : Color.YellowGreen);

                            metroStatusBar1.Refresh();
                        }));

                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        if (_startControl != null)
                            _startControl.Invoke((Action) (() =>
                            {
                                if (isMaster)
                                {
                                    ToastNotification.Show(_startControl, "Can't connect. IP is incorrect");
                                    _startControl.ui_buttonX_logon.Enabled = true;
                                }
                                else
                                {
                                    Logout();
                                }
                            }
                                ));

                        return;
                    }
                    var loginMsg = new DataAdminMessageFactory.LoginMessage(username, password, 'd');
                    try
                    {
                        _clientService.ServiceProxy.Login(loginMsg);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        MessageBox.Show(ex.Message);
                    }
                }) {Name = "LogonThread", IsBackground = true};

            _logonThread.Start();
        }
Ejemplo n.º 3
0
        public void Login(DataAdminMessageFactory.LoginMessage loginParams)
        {
            var usr = loginParams.UsernameMD5;
            var psw = loginParams.PasswordMD5;
            string serverMessage = "";
            string msgfail = "";

            var users = DataManager.GetUsers();

            if (users.Exists(a => a.Name == usr)) // if user in DB
            {
                UserModel tempUser = users.Find(a => a.Name == usr);

                if (tempUser.Password == psw) // if user psw == db.psw
                {
                    string ipAddress = "";
                    var match = Regex.Match(CurrentClient.RemoteEndPoint.ToString(),
                                            @"\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b");
                    if (match.Success)
                        ipAddress = match.Captures[0].Value;
                    if ((ipAddress == tempUser.IpAdress && tempUser.AllowAnyIp == false) || (tempUser.AllowAnyIp))
                        // if with Ip adress is all good
                    {
                        #region VALIDATION

                        if (loginParams.NetType == 'd' && tempUser.AllowDataNet == false)
                        {
                            serverMessage = "YOUR DATANET CLIENT BLOCKED BY ADMIN";

                            msgfail = "Client trying to connect from " + CurrentClient.RemoteEndPoint +
                                      " but his client blocked by Admin.";
                            Error = true;

                        }
                        if (loginParams.NetType == 't' && tempUser.AllowTickNet == false)
                        {
                            serverMessage = "YOUR TICKNET CLIENT BLOCKED BY ADMIN";

                            msgfail = DateTime.Now.Date.ToShortDateString() + ": Client trying to connect from " +
                                      CurrentClient.RemoteEndPoint + " but  his client blocked by Admin.";
                            Error = true;
                        }
                        if (loginParams.NetType == 'e' && tempUser.AllowDexport == false)
                        {
                            serverMessage = "YOUR DATA EXPORT CLIENT BLOCKED BY ADMIN";

                            msgfail = DateTime.Now.Date.ToShortDateString() + ": Client trying to connect from " +
                                      CurrentClient.RemoteEndPoint + " but  his client blocked by Admin.";
                            Error = true;
                        }

                        #endregion

                        #region Succes Login

                        if (!Error)
                        {
                            if (loginParams.NetType == 'd' && tempUser.AllowDataNet)
                           DataNetClientLogin(loginParams, tempUser);

                            if (loginParams.NetType == 't' && tempUser.AllowTickNet)
                               TickNetClientLogin(loginParams, tempUser);

                            if (loginParams.NetType == 'e' && tempUser.AllowDexport)
                            DataExportClientLogin(loginParams, tempUser);
                            return;
                        }

                        #endregion

                    }
                    else
                    {
                        serverMessage = "YOUR IP ADDRESS IS NOT ALLOWED";
                        msgfail = DateTime.Now.Date.ToShortDateString() + ": Client trying connect to server from " +
                                  CurrentClient.RemoteEndPoint + " but the IP adress is blocked by Admin.";
                    }
                }
                else
                {
                    serverMessage = "ENTER A CORRECT PASSWORD";
                }
            }
            else
            {
                serverMessage = "YOUR USERNAME IS INCORRECT";
            }

            #region Create Server Message about failed login and send to client

            if (OnloginFailedLog != null)
            {
                new Thread( () =>OnloginFailedLog(new DataAdminMessageFactory.LogMessage(), msgfail)).Start();
            }
            var client = CurrentClient;

            //Get a proxy object to call methods of client when needed
            var clientProxy = client.GetClientProxy<IDataAdminService>();
            var loginFailed = new DataAdminMessageFactory.LoginMessage("", "", 'd') {ServerMessage = serverMessage};
            clientProxy.Login(loginFailed);

            #endregion
        }