Ejemplo n.º 1
0
 /// <summary>
 /// Выход пользователя из системы
 /// </summary>
 /// <param name="ARequest">Запрос в формате JSON-объекта</param>
 public void Logout(string ARequest)
 {
     try
     {
         ServerLib.JTypes.Client.RequestLogoutClass Request = JsonConvert.DeserializeObject <ServerLib.JTypes.Client.RequestLogoutClass>(ARequest);
         UserSession.OutputQueueAddObject(KillSession(Request.Token));
     }
     catch (Exception ex)
     {
         UserSession.OutputQueueAddObject(new ServerLib.JTypes.Server.ResponseExceptionClass(ServerLib.JTypes.Enums.Commands.logout, ServerLib.JTypes.Enums.ErrorCodes.FatalError, ex.Message));
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Аутентификация пользователя
 /// </summary>
 /// <param name="ARequest">Запрос в формате JSON-объекта</param>
 public void Login(string ARequest)
 {
     try
     {
         ServerLib.JTypes.Client.RequestLoginClass Request = JsonConvert.DeserializeObject <ServerLib.JTypes.Client.RequestLoginClass>(ARequest);
         Token  = null;
         ID     = 0;
         Active = 0;
         State  = ServerLib.JTypes.Enums.ResponseState.error;
         DatabaseParameterValuesClass Params = new DatabaseParameterValuesClass();
         Params.CreateParameterValue("WebSocketID", UserSession.WebSocketSessionID);
         Params.CreateParameterValue("Login", Request.UserName);
         Params.CreateParameterValue("Password", Request.Password);
         Params.CreateParameterValue("AccessToken");
         Params.CreateParameterValue("AccessUserId");
         Params.CreateParameterValue("Active");
         UserSession.Project.Database.Execute("Login", ref Params);
         long _UserId = Params.ParameterByName("AccessUserId").AsInt64;
         int  _Active = Params.ParameterByName("Active").AsInt32;
         if (_UserId > 0)
         {
             Token  = _Active == 1 ? Params.ParameterByName("AccessToken").AsString: null;
             Active = _Active == 1 ? ServerLib.JTypes.Enums.UserActive.activated : ServerLib.JTypes.Enums.UserActive.blocked;
             ID     = Active == ServerLib.JTypes.Enums.UserActive.activated ? _UserId : 0;
             State  = ServerLib.JTypes.Enums.ResponseState.ok;
             UserSession.OutputQueueAddObject(this);
             UserSession.UserInformation.SendData();
         }
         else
         {
             UserSession.OutputQueueAddObject(new ServerLib.JTypes.Server.ResponseExceptionClass(ServerLib.JTypes.Enums.Commands.login, ServerLib.JTypes.Enums.ErrorCodes.IncorrectLoginOrPassword));
         }
     }
     catch (Exception ex)
     {
         UserSession.OutputQueueAddObject(new ServerLib.JTypes.Server.ResponseExceptionClass(ServerLib.JTypes.Enums.Commands.login, ServerLib.JTypes.Enums.ErrorCodes.FatalError, ex.Message));
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Поток обновления данных
        /// </summary>
        /// <param name="state"></param>
        private void RefreshDataProcessing(object state)
        {
            if (UserSession.IsAuthenticated && !IsRunning)
            {
                Thread th = new Thread(() =>
                {
                    try
                    {
                        IsRunning = true;
                        DatabaseParameterValuesClass Param = new DatabaseParameterValuesClass();
                        Param.CreateParameterValue("Token", UserSession.Login.Token);
                        Param.CreateParameterValue("UserId", UserSession.Login.ID);
                        Param.CreateParameterValue("FirstName");
                        Param.CreateParameterValue("LastName");
                        Param.CreateParameterValue("MidleName");
                        Param.CreateParameterValue("Job");
                        Param.CreateParameterValue("Active");
                        Param.CreateParameterValue("State");
                        Param.CreateParameterValue("ErrorText");
                        UserSession.Project.Database.Execute("UserInformation", ref Param);
                        if (Param.ParameterByName("State").AsString == "ok")
                        {
                            DatabaseParameterValuesClass Params = new DatabaseParameterValuesClass();
                            Params.CreateParameterValue("Token", UserSession.Login.Token);
                            DatabaseTableClass ReadTable = new DatabaseTableClass
                            {
                                Table = (System.Data.DataTable)UserSession.Project.Database.Execute("UserPermissions", ref Params)
                            };
                            Permissions.Clear();
                            foreach (System.Data.DataRow row in ReadTable.Table.Rows)
                            {
                                Permissions.Add(new ServerLib.JTypes.Server.ResponseUserPermissionClass
                                {
                                    ObjectName = ReadTable.AsString(row, "OBJECT"),
                                    Operation  = (ServerLib.JTypes.Enums.ObjectOperations)ReadTable.AsInt32(row, "OPERATION")
                                });
                            }

                            string OldMessage = JsonConvert.SerializeObject(this);
                            FirstName         = Param.ParameterByName("FirstName").AsString;
                            LastName          = Param.ParameterByName("LastName").AsString;
                            MidleName         = Param.ParameterByName("MidleName").AsString;
                            JobName           = Param.ParameterByName("Job").AsString;
                            Active            = Param.ParameterByName("Active").AsInt32 == 1 ? ServerLib.JTypes.Enums.UserActive.activated : ServerLib.JTypes.Enums.UserActive.blocked;
                            State             = ServerLib.JTypes.Enums.ResponseState.ok;
                            if (JsonConvert.SerializeObject(this) != OldMessage)
                            {
                                UserSession.OutputQueueAddObject(this);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        UserSession.Project.Log.Error(string.Format("UserInformation.RefreshDataProcessing {0}", ex.Message));
                    }
                    finally
                    {
                        IsRunning = false;
                    }
                });
                th.Start();
            }
            RefreshDataTimer.Change(5000, Timeout.Infinite);
        }