Пример #1
0
        public void Login(string username, string password, bool save, IJavascriptCallback callback)
        {
            Task.Run(async() =>
            {
                this.connection = new Connection(Server.Live);
                this.connection.MessageReceived += Connection_MessageReceived;

                LoginResult message = new LoginResult();

                connection.Username = username;
                connection.Password = password;

                message.succeeded = true;

                try
                {
                    await connection.Connect();
                }
                catch (Exception e)
                {
                    message.message   = e.Message.ToLower().Replace(".", "");
                    message.succeeded = false;
                }

                // Save the user if the login succeeded, otherwise
                // delete the info from the file.
                if (message.succeeded && save)
                {
                    SavedUser.SaveUser(new User()
                    {
                        Username = username,
                        Password = password
                    });
                }
                else
                {
                    SavedUser.SaveUser(null);
                }

                using (callback)
                {
                    await callback.ExecuteAsync(JsonConvert.SerializeObject(message));
                }
            });
        }
Пример #2
0
        /// <summary>
        /// Saves an <see cref="IUser"/>
        /// </summary>
        /// <param name="entity"><see cref="IUser"/> to Save</param>
        /// <param name="raiseEvents">Optional parameter to raise events.
        /// Default is <c>True</c> otherwise set to <c>False</c> to not raise events</param>
        public void Save(IUser entity, bool raiseEvents = true)
        {
            if (raiseEvents)
            {
                if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs <IUser>(entity), this))
                {
                    return;
                }
            }

            var uow = UowProvider.GetUnitOfWork();

            using (var repository = RepositoryFactory.CreateUserRepository(uow))
            {
                repository.AddOrUpdate(entity);
                try
                {
                    uow.Commit();
                }
                catch (DbException ex)
                {
                    //Special case, if we are upgrading and an exception occurs, just continue
                    if (IsUpgrading == false)
                    {
                        throw;
                    }

                    Logger.WarnWithException <UserService>("An error occurred attempting to save a user instance during upgrade, normally this warning can be ignored", ex);
                    return;
                }
            }

            if (raiseEvents)
            {
                SavedUser.RaiseEvent(new SaveEventArgs <IUser>(entity, false), this);
            }
        }
        private void Logon(User autoLoginUser)
        {
            Trace.WriteInformation("User is attempting to logon with username '{0}' (passwordLength='{1}')", Trace.GetMethodName(), CLASSNAME, autoLoginUser != null ? autoLoginUser.Username : usersComboBox.Text, autoLoginUser != null ? 0 : passwordTextBox.Text.Length);

            try
            {
                ShowBusyBox = true;

                SavedUser user;
                if (autoLoginUser == null)
                {
                    user = (SavedUser)usersComboBox.SelectedItem;
                    if (user == null)
                    {
                        user = new SavedUser(usersComboBox.Text, passwordTextBox.Text);
                    }
                    else
                    {
                        user.Password = passwordTextBox.Text;
                    }
                }
                else
                {
                    user = new SavedUser(autoLoginUser.Username, autoLoginUser.Password);
                }

                Connecting = true;

                try
                {
                    CurrentUser.SetCurrentUser(user.Username, user.Password, autoLoginUser != null);
                    var usr = CurrentUser.User;
                    if (!CurrentUser.HasPermission(ACICategories.GENERAL, ACIOptions.LOGON))
                    {
                        throw new SecurityException(Environment.UserDomainName, user.Username, "*****", Translations.LogonForm.NoAuthorisation);
                    }
                    Trace.WriteInformation("User succesfully authenticated by Domain or SQL. (User: {0})", Trace.GetMethodName(), CLASSNAME, CurrentUser.User);
                    if (autoLoginUser == null)
                    {
                        AddHistoryAction(TranslationKey.History_LogonForm_LoggedOn, "User: {0} logged on", CurrentUser.User.Username);
                    }
                    else
                    {
                        AddHistoryAction(TranslationKey.History_Automatic_LogOn, "User: {0} logged on as default user", CurrentUser.User.Username);
                    }
                    new WindowsRegistryHandler().SaveUser(user);
                }
                catch (SecurityException ex)
                {
                    string name = Trace.GetMethodName();
                    Trace.WriteError("()", name, CLASSNAME, ex);
                    DisplayError(TranslationKey.Error_Logon_LoginFailed, "Login Failed", "Login for the user is failed. Reason:\n\n {0}", ex.Message);
                    AddHistoryAction(TranslationKey.History_LogonForm_LoginFailed, "Login for the user {0} is failed. Reason: {1}", user.Username, ex.Message);
                    passwordTextBox.Clear();
                }
                catch (Exception ex)
                {
                    string name = Trace.GetMethodName();
                    Trace.WriteError("()", name, CLASSNAME, ex);
                    DisplayError(TranslationKey.Error_Logon_LoginFailed, "Login Failed", "Login for the user is failed. Reason:\n\n {0}", ex.Message);
                    AddHistoryAction(TranslationKey.History_LogonForm_LoginFailed, "Login for the user {0} is failed. Reason: {1}", user.Username, ex.Message);
                }
            }
            catch (Exception ex)
            {
                Trace.WriteError("()", Trace.GetMethodName(), CLASSNAME, ex);
                DisplayError(Trace.GetMethodName(), TranslationKey.CommonMessage_InternalError, ex);
                AddHistoryAction(TranslationKey.History_LogonForm_LoginFailed, "Login attempt has failed. Reason: {1}", ex.Message);
            }
            finally
            {
                ShowBusyBox = false;
                EnableDisableButtons();
            }
        }
Пример #4
0
 public string GetSavedCredentials()
 {
     return(JsonConvert.SerializeObject(SavedUser.GetUser()));
 }