public AuthenticationController(PasswordActionContext context, Settings settings)
 {
     Context  = context;
     Settings = settings ?? throw new ArgumentNullException(nameof(settings));
     Context.Users.Load();
     ChangeUser(Context.Users.FirstOrDefault()?.Id ?? -1);
 }
        public bool VerifyUser(PasswordAction passwordAction, out double m, out double sigma, out double duration)
        {
            using (PasswordActionContext tempContext = new PasswordActionContext())
            {
                m        = 0;
                sigma    = 0;
                duration = TimeSpanConverter.TotalSeconds(passwordAction.TimeDuration);

                //bool result = true;
                tempContext.PasswordActions
                .Include(p => p.SymbolActions)
                .Where(p => p.UserId == passwordAction.UserId)
                .Where(p => p.ValidPassword == passwordAction.ValidPassword)
                .Load();

                if (tempContext.PasswordActions.Local.Count == 0)
                {
                    //result = false;
                    return(false);
                }

                DurationsStatistics durationStatistics = new DurationsStatistics(tempContext.PasswordActions.Local);
                m     = durationStatistics.MathExpectation;
                sigma = durationStatistics.Sigma;
                if (Math.Abs(m - duration) > sigma)
                {
                    return(false);
                }
            }
            return(true);
        }
Exemplo n.º 3
0
 public SettingsForm(MainForm mainForm, Settings settings, PasswordActionContext context)
 {
     InitializeComponent();
     this.mainForm = mainForm;
     this.settings = settings;
     Context       = context ?? throw new ArgumentNullException(nameof(context));
     Init();
 }
Exemplo n.º 4
0
        protected override void ReloadData()
        {
            GetLastPasswordActionId();
            context = new PasswordActionContext();
            LoadData();


            UpdateForm();
            //UpdateLablesGroupBox();
        }
        protected override void ReloadData()
        {
            GetLastPasswordActionId();
            context = new PasswordActionContext();
            LoadData();

            Statistics.ChangeCollection(context.SymbolActions.Local);

            UpdateChart();
            UpdateLablesGroupBox();
        }
        protected override void Init()
        {
            eveninigTime         = new TimeSpan(18, 0, 0);
            morningTime          = new TimeSpan(6, 0, 0);
            daytimePasswords     = new PasswordActionContext();
            eveningtimePasswords = new PasswordActionContext();
            LoadData();

            DaytimeStatistics     = new DurationsStatistics(daytimePasswords.PasswordActions.Local);
            EveningtimeStatistics = new DurationsStatistics(eveningtimePasswords.PasswordActions.Local);
            base.Init();
        }
        protected override void ReloadData()
        {
            daytimePasswords     = new PasswordActionContext();
            eveningtimePasswords = new PasswordActionContext();
            LoadData();

            DaytimeStatistics.ChangeCollection(daytimePasswords.PasswordActions.Local);
            EveningtimeStatistics.ChangeCollection(eveningtimePasswords.PasswordActions.Local);

            UpdateChart();
            UpdateLablesGroupBox();
        }
        protected override void Init()
        {
            mainForm.PasswordsUpdate -= UpdateForm;
            mainForm.PasswordsUpdate += ReloadData;

            context = new PasswordActionContext();

            GetLastPasswordActionId();
            LoadData();

            Statistics = new PressDurationStatistics(context.SymbolActions.Local);
            base.Init();
        }
Exemplo n.º 9
0
 private void ChangeUser()
 {
     DisposeContext();
     Context = new PasswordActionContext();
     Context.PasswordActions.Include(p => p.SymbolActions)
     .Where(p => p.UserId == Settings.UserId)
     .Where(p => p.ValidPassword == Settings.Password)
     .Load();
     CurrentUser     = Context.Users.Find(Settings.UserId);
     idLabel.Text    = CurrentUser.Id.ToString();
     loginLabel.Text = CurrentUser.Login.ToString();
     passwordActionsGridView.DataSource = Context.PasswordActions.Local;
 }
Exemplo n.º 10
0
        protected override void Init()
        {
            mainForm.PasswordsUpdate -= UpdateForm;
            mainForm.PasswordsUpdate += ReloadData;

            context = new PasswordActionContext();

            GetLastPasswordActionId();
            LoadData();

            layoutPanel.Font        = new Font(layoutPanel.Font.FontFamily, 12);
            VectorTextBox           = new TextBox();
            VectorTextBox.Multiline = true;
            VectorTextBox.Width     = layoutPanel.Width - 5;
            VectorTextBox.Height    = layoutPanel.Height - 10;
            VectorTextBox.ReadOnly  = true;
            //VectorTextBox.Dock= DockStyle.Fill;
            layoutPanel.Controls.Add(VectorTextBox);
            base.Init();
        }
        public User IdentifyUser(PasswordAction passwordAction, out double m, out double duration, out double different)
        {
            m         = 0;
            different = 0;

            duration = TimeSpanConverter.TotalSeconds(passwordAction.TimeDuration);
            List <User> users = new List <User>();

            using (PasswordActionContext tempContext = new PasswordActionContext())
            {
                //tempContext.PasswordActions.Where(p => p.ValidPassword == passwordAction.ValidPassword);
                //tempContext.Users.Any( .Load();
                users = tempContext.Users.Include(u => u.PasswordActions).ToList();
            }

            List <User> newUsers = new List <User>();

            foreach (var user in users)
            {
                if (user.PasswordActions.Any(p => p.ValidPassword == passwordAction.ValidPassword))
                {
                    newUsers.Add(user);
                }
            }

            User identifyUser = null;

            if (newUsers.Count == 0)
            {
                return(identifyUser);
            }
            foreach (var tempUser in newUsers)
            {
                using (PasswordActionContext newTempContext = new PasswordActionContext())
                {
                    newTempContext.PasswordActions
                    .Include(p => p.SymbolActions)
                    .Where(p => p.UserId == tempUser.Id)
                    .Load();
                    DurationsStatistics statistics = new DurationsStatistics(newTempContext.PasswordActions.Local);

                    if (identifyUser == null || Math.Abs(statistics.MathExpectation - duration) < different)
                    {
                        m            = statistics.MathExpectation;
                        different    = Math.Abs(m - duration);
                        identifyUser = tempUser;
                    }
                }
            }
            return(identifyUser);

            //    tempContext.Users
            //    .Include(u => u.PasswordActions)
            //    .Include(u => u.PasswordActions.Select(p => p.SymbolActions))
            //    .Load();
            //}
            //return true;

            //PasswordAction mostRelevantPasswordAction = passwordActions.FirstOrDefault(p => p.ValidPassword == passwordAction.ValidPassword);
            //User user = Context.Users.Find(mostRelevantPasswordAction.UserId);
            //return user;
        }