コード例 #1
0
        /// <summary>
        /// Сюда нам придет запрос на авторизацию
        /// </summary>
        /// <param name="approvalConnection">Временное не авторизированное соеденение</param>
        /// <param name="data">Массив байт, данные присланные вместе с запросом авторизации</param>
        private void OnGalaxyConnect(ApprovalConnection approvalConnection, byte[] data)
        {
            Console.WriteLine("Авторизация");

            MessageAuth message = MessageAuth.Deserialize <MessageAuth>(data); //преобразовывем массив байт в читабельное сообщение

            //тут нам следовало бы провести какую либо проверку правильности логина и пароля
            //Но сейчас мы не станем этого делать, и просто разрешить соеденение всем в чьих логинах содержится test
            if (message.login.Contains("test"))
            {
                MessageFirst response = new MessageFirst();                     //Создадим пакет который мы отправим клиенту вместе с разрешением коннекта
                response.id = DataBaseEmitator.GetNewUserID();                  // Получаем ид
                ClientConnection connection;                                    // Раз мы решили авторизировать клиента, то следует создать уже постоянное соеденение
                connection = approvalConnection.Approve(response, response.id); // возвращяем данные вместе с разрешением, так же мы получим уже рабочий экземпляр авторизированного соеденения
                Client client = new Client(connection, response.id);
                Server.clientManager.AddClient(client);
            }
            else
            {
                //Ну а раз test в логине не нашлось, то соеденение не разрешаем
                //Тут нам нужно отправить два оргумента
                // первый это код ошибки, вы можете указать его любым, от вернется клиенту для дайнейшей обработки
                // второй это читабельное сообщение об ошибки, впрочим это не обязательно
                approvalConnection.Deny(1, "Нам не нравится ваш логин");
            }
        }
コード例 #2
0
ファイル: Authorization.cs プロジェクト: VTaredi/GalaxyCore
        /// <summary>
        /// Сюда нам придет запрос на авторизацию
        /// </summary>
        /// <param name="approvalConnection">Временное не авторизированное соеденение</param>
        /// <param name="data">Массив байт, данные присланные вместе с запросом авторизации</param>
        private void OnGalaxyConnect(ApprovalConnection approvalConnection, byte[] data)
        {
            MessageAuth message = MessageAuth.Deserialize <MessageAuth>(data); //преобразовывем массив байт в читабельное сообщение

            //тут нам следовало бы провести какую либо проверку правильности логина и пароля
            //Но сейчас мы не станем этого делать, и просто разрешить соеденение всем в чьих логинах содержится test
            if (message.login.Contains("test"))
            {
                MessageApproval response = new MessageApproval(); //Создадим пакет который мы отправим клиенту вместе с разрешением коннекта
                response.name = message.login;
                int clientID = Tools.GetNewID();                  // Получаем ид

                ClientConnection connection;                      // Раз мы решили авторизировать клиента, то следует создать уже постоянное соеденение
                Client           client = new Client();           // Создаем собственную реализацию клиента
                // возвращяем данные вместе с разрешением, так же мы получим уже рабочий экземпляр авторизированного соеденения
                // так же приклепляем собственную реализацию клиента, для того что бы в бущем, можно было её оперативно получить из коннекшена
                connection = approvalConnection.Approve(response, clientID, client);
                client.Init(connection, clientID);
            }
            else
            {
                //Ну а раз test в логине не нашлось, то соеденение не разрешаем
                //Тут нам нужно отправить два оргумента
                // первый это код ошибки, вы можете указать его любым, от вернется клиенту для дайнейшей обработки
                // второй это читабельное сообщение об ошибки, впрочим это не обязательно
                approvalConnection.Deny(1, "Нам не нравится ваш логин");
            }
        }
コード例 #3
0
ファイル: Login.cs プロジェクト: immovablewisdom/GalaxyCore
    /// <summary>
    /// Метод авторизации вызываемый из UI
    /// </summary>
    public void Auth()
    {
        //Создаем новое сообщение аунтефикации, которое мы положили в GalaxyTemplateCommon
        MessageAuth messageAuth = new MessageAuth();

        if (login.text.Length < 4)
        {
            status.text = "Какой то очень короткий логин";
            return;
        }
        status.text          = "Подключение...";
        messageAuth.login    = login.text;
        messageAuth.password = password.text;
        GalaxyApi.connection.Connect(messageAuth); // Отправляем запрос на сервер
    }