Esempio n. 1
0
 public LoginEntryViewModel(LoginEntry loginEntry)
     : base(loginEntry)
 {
     UserId   = loginEntry.UserId;
     Password = loginEntry.Password;
     Remember = loginEntry.Remember;
 }
Esempio n. 2
0
        private async Task AnimatePrompt(string arg)
        {
            await AnimateLoginStop();

            PromptLabel.Text      = arg;
            LoginButton.IsEnabled = false;
            LoginEntry.TextColor  = Color.Red;
            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(0, 0, 100, Easing.Linear);

            await ArrowFrame.TranslateTo(0, 0, 1000, Easing.Linear);

            await PromptFrame.ScaleTo(1, 500, Easing.Linear);

            await Task.Delay(5000);

            await PromptFrame.ScaleTo(0, 500, Easing.Linear);

            await ArrowFrame.TranslateTo(0, 2000, 1000, Easing.Linear);

            LoginEntry.TextColor  = Color.Black;
            LoginButton.IsEnabled = true;
        }
Esempio n. 3
0
        private async void Button_OnClicked(object sender, EventArgs e)
        {
            try
            {
                App.CurrentUser = null;
                if (string.IsNullOrWhiteSpace(LoginEntry.Text))
                {
                    await DisplayAlert("Error", "Preencha o login", "OK");

                    LoginEntry.Focus();
                    return;
                }

                if (string.IsNullOrWhiteSpace(PwdEntry.Text))
                {
                    await DisplayAlert("Error", "Preencha a senha", "OK");

                    PwdEntry.Focus();
                    return;
                }

                var isLogged = await CheckLogin(LoginEntry.Text, PwdEntry.Text);

                if (!isLogged)
                {
                    return;
                }

                await Navigation.PushAsync(new PurchaseOrderListPage());
            }
            catch (Exception ex)
            {
                await DisplayAlert("Error", ex.Message, "OK");
            }
        }
        private void LoadLoginData()
        {
            LoginStatisticService service = (LoginStatisticService)Portal.API.Statistics.Statistic.GetService(typeof(LoginStatisticService));
            LoginStatisticData    data    = service.GetData(Context);

            List <LoginEntry> entries = new List <LoginEntry>();

            foreach (LoginStatisticData.TLoginRow row in data.TLogin.Rows)
            {
                Portal.API.Users.UserRow user = UserManagement.Users.FindById(row.UserId);
                LoginEntry entry = new LoginEntry();
                if (null != user)
                {
                    // User was found, so use the actual user infos to show.
                    entry.Login     = user.login;
                    entry.FirstName = user.SafeFirstName;
                    entry.LastName  = user.SafeSurName;
                }
                else
                {
                    // User was deleted, so use cached infos.
                    entry.Login     = row.Login;
                    entry.FirstName = row.FirstName;
                    entry.LastName  = row.LastName;
                }
                entry.LoginCount = row.LoginCount;
                entry.LastLogin  = row.LastLogin;
                entries.Add(entry);
            }

            repeaterLogin.DataSource = entries;
            repeaterLogin.DataBind();
        }
Esempio n. 5
0
 public loginView(login onelogin)
 {
     this.onelongin = onelongin;
     InitializeComponent();
     //  Label newLabel = new Label();
     BindingContext = this.onelongin;
     VersionsTekst.SetBinding(Label.TextProperty, "VersionsTekst", BindingMode.OneWay);
     LoginEntry.SetBinding <login>(Entry.TextProperty, vm->vm.LoginEntry, BindingMode.OneWay);
 }
        public async Task <IActionResult> Login([FromBody] LoginEntry loginGet)
        {
            if (string.IsNullOrEmpty(loginGet.Senha) && string.IsNullOrEmpty(loginGet.GoogleId.ToString()))
            {
                return(BadRequest());
            }

            var pessoa = await faceitContext.Pessoa
                         .FirstOrDefaultAsync(x => x.Email == loginGet.Email && (x.Senha == loginGet.Senha || x.GoogleID.GetValueOrDefault() == loginGet.GoogleId));

            if (pessoa != null && pessoa.Excluido != true)
            {
                try
                {
                    if (pessoa.Tipo.Equals("PF"))
                    {
                        pessoa = await faceitContext.Pessoa
                                 .Include(x => x.PessoaFisica)
                                 .Include(x => x.Endereco)
                                 .Include(x => x.PessoaSkill)
                                 .Include(x => x.Anexo)
                                 .Include(x => x.Imagem)
                                 .FirstOrDefaultAsync(x => x.Email == loginGet.Email && (x.Senha == loginGet.Senha || x.GoogleID == loginGet.GoogleId));
                    }
                    else
                    {
                        pessoa = await faceitContext.Pessoa
                                 .Include(x => x.PessoaJuridica)
                                 .Include(x => x.Endereco)
                                 .Include(x => x.PessoaSkill)
                                 .Include(x => x.Anexo)
                                 .Include(x => x.Imagem)
                                 .FirstOrDefaultAsync(x => x.Email == loginGet.Email && (x.Senha == loginGet.Senha || x.GoogleID == loginGet.GoogleId));
                    }

                    var token = new Token {
                        Value = GerarToken(pessoa), Date = DateTime.Now
                    };

                    return(Ok(new LoginRetun()
                    {
                        pessoa = pessoa, token = token
                    }));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(ex.Message, "Contate um administrador");
                    return(BadRequest(ModelState));
                }
            }
            else
            {
                return(NotFound());
            }
        }
 private async Task LogEntry(ApplicationUser user, string status)
 {
     // add entry for each login attempt
     var loginEntry = new LoginEntry
     {
         UserId    = user.Id,
         IPAddress = Context.Connection.RemoteIpAddress,
         Status    = status
     };
     await _loginEntryStore.Save(loginEntry);
 }
 public void Update(LoginEntry another)
 {
     lock (this) {
         LoginId  = string.Copy(another.LoginId);
         Entity   = string.Copy(another.Entity);
         Validity = another.Validity;
         DeadLine = another.DeadLine;
         KeyBytes = new byte[another.KeyBytes.Length];
         Array.Copy(another.KeyBytes, KeyBytes, another.KeyBytes.Length);
         Publickey = Crypto.CreatePublicKeyFromBytes(another.KeyBytes);
     }
 }
Esempio n. 9
0
        private LoginEntry UsernameEntry()
        {
            usernameEntry = new LoginEntry
            {
                Placeholder   = LocalizedResources.username,
                HeightRequest = componentHeight,
                ReturnType    = ReturnType.Next
            };

            usernameEntry.SetBinding(LoginEntry.TextProperty, "Username", BindingMode.TwoWay);
            usernameEntry.Completed += Entry_Completed;
            return(usernameEntry);
        }
Esempio n. 10
0
        public async Task Save(LoginEntry item)
        {
            if (item.Id <= 0)
            {
                Items.Add(item);
            }
            else
            {
                Items.Update(item);
            }

            await DbContext.SaveChangesAsync();
        }
 internal void UpdateEntry(LoginEntry entry)
 {
     _lock.EnterWriteLock();
     try {
         LoginEntry cacheEntry;
         if (_logins.TryGetValue(entry.LoginId, out cacheEntry))
         {
             cacheEntry.Update(entry);
         }
     }
     finally {
         _lock.ExitWriteLock();
     }
 }
Esempio n. 12
0
        public async Task RemoveLoginEntry(ApplicationUser user, LoginEntry item)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            item.UserId = user.Id;
            await _loginEntryStore.Delete(item);
        }
Esempio n. 13
0
        private LoginEntry PasswordEntry()
        {
            passwordEntry = new LoginEntry
            {
                Placeholder   = LocalizedResources.password,
                HeightRequest = componentHeight,
                IsPassword    = true,
                ReturnType    = ReturnType.Done,
            };

            passwordEntry.SetBinding(LoginEntry.TextProperty, "Password", BindingMode.TwoWay);
            passwordEntry.Completed += Entry_Completed;
            return(passwordEntry);
        }
            public LoginEntry Clone()
            {
                LoginEntry ret = new LoginEntry();

                lock (this) {
                    ret.LoginId  = string.Copy(LoginId);
                    ret.Entity   = string.Copy(Entity);
                    ret.Validity = Validity;
                    ret.DeadLine = DeadLine;
                    ret.KeyBytes = new byte[KeyBytes.Length];
                    Array.Copy(KeyBytes, ret.KeyBytes, KeyBytes.Length);
                    ret.Publickey = Crypto.CreatePublicKeyFromBytes(KeyBytes);
                }
                return(ret);
            }
Esempio n. 15
0
        private async Task AnimateLoginStart()
        {
            await Task.Run(() =>
            {
                LoginEntry.FadeTo(0, 500, Easing.Linear);
                PasswordEntry.FadeTo(0, 500, Easing.Linear);
                LoginButton.FadeTo(0, 500, Easing.Linear);
            });


            await LogoImage.TranslateTo(0, 50, 1000, Easing.Linear);

            while ((BindingContext as LoginPageViewModel).Busy)
            {
                await LogoImage.FadeTo(1, 600);

                await LogoImage.FadeTo(0, 600);
            }
        }
        public async Task <IActionResult> Login(LoginEntry entry)
        {
            ViewData["WrongLogin"] = null;
            if (entry.Email == null || entry.Password == null)
            {
                ViewData["WrongLogin"] = "******";
                return(View());
            }

            try
            {
                var user = await _userManager.GetUserByEmailAsync(entry.Email);

                if (user != null)
                {
                    //if (!user.IsEmailConfirmed)
                    //{
                    //    ViewData["WrongLogin"] = "******";
                    //    return View(entry);
                    //}
                    if (!HashUtils.VerifyPassword(entry.Password, user.Password))
                    {
                        /* Don't reveal which one is incorrect.  */
                        ViewData["WrongLogin"] = "******";
                        return(View(entry));
                    }
                }

                HttpContext.Session.SetObjectAsJson("UserId", user.Id);
                HttpContext.Session.SetObjectAsJson("UserName", user.Username);
                HttpContext.Session.SetObjectAsJson("TypeOfUser", user.UserRole);

                //SessionUserRole.UserRole = user.UserRole;
            }
            catch (Exception)
            {
                //await _logger.LogCustomExceptionAsync(ex, null);
                return(RedirectToAction("Error", "Home"));
            }

            return(RedirectToAction("Index", "Manage"));
        }
        public async Task <IActionResult> Login(LoginEntry entry)
        {
            ViewData["WrongLogin"] = null;
            if (entry.Email == null || entry.Password == null)
            {
                ViewData["WrongLogin"] = "******";
                return(View());
            }

            try
            {
                var user = await _userManager.GetUserByEmailAsync(entry.Email);

                if (user != null)
                {
                    if (!user.IsEmailConfirmed)
                    {
                        ViewData["WrongLogin"] = "******";
                        return(View());
                    }
                    if (!HashUtils.VerifyPassword(entry.Password, user.Password))
                    {
                        /* Don't reveal which one is incorrect.  */
                        ViewData["WrongLogin"] = "******";
                        return(View());
                    }
                }

                HttpContext.Session.SetObjectAsJson <string>("UserId", user.Id);
                HttpContext.Session.SetObjectAsJson <string>("Email", user.Email);
                HttpContext.Session.SetObjectAsJson <double>("Coins", user.Coins);
            }
            catch (Exception ex)
            {
                await _logger.LogCustomExceptionAsync(ex, null);

                return(RedirectToAction("Error", "Home"));
            }


            return(RedirectToAction("Index", "Home"));
        }
 public ActionResult Login(string UserName, string Password)
 {
     try
     {
         List <Login> retList = new LoginEntry().GetLogin(UserName, Password);
         if (retList.Count > 0)
         {
             return(Ok("Success"));
         }
         else
         {
             return(BadRequest("Invalid Login"));
         }
     }
     catch (Exception ex)
     {
         Log.ErrorToFile(ex.Message);
         return(BadRequest(ex.Message));
     }
 }
Esempio n. 19
0
 public bool HasRemainingLoginAttempts(string userId, bool incrementCount)
 {
     lock (m_loginEntries)
     {
         if (m_loginEntries.TryGetValue(userId, out LoginEntry entry))
         {
             if (entry.LoginWindowStartDt.Add(m_loginWindowDuration) >= DateTime.UtcNow)
             {
                 // Existing login Window
                 if (incrementCount)
                 {
                     entry.NumberOfAttempts++;
                 }
             }
             else
             {
                 // New login Window
                 if (!incrementCount)
                 {
                     return(true);
                 }
                 entry.LoginWindowStartDt = DateTime.UtcNow;
                 entry.NumberOfAttempts   = 1;
             }
         }
         else
         {
             if (!incrementCount)
             {
                 return(true);
             }
             entry = new LoginEntry
             {
                 LoginWindowStartDt = DateTime.UtcNow,
                 NumberOfAttempts   = 1
             };
             m_loginEntries.Add(userId, entry);
         }
         return(entry.NumberOfAttempts < m_maxLoginAttemptsInWindow);
     }
 }
Esempio n. 20
0
        public void OnLoginItemDataBound(Object Sender, RepeaterItemEventArgs args)
        {
            HtmlTableRow row = (HtmlTableRow)args.Item.FindControl("Row");

            if (args.Item.ItemType == ListItemType.Item || args.Item.ItemType == ListItemType.AlternatingItem)
            {
                LoginEntry entry = (LoginEntry)args.Item.DataItem;
                row.Controls.Add(GetTextCell(entry.Login, "left"));
                row.Controls.Add(GetTextCell(entry.FirstName, "left"));
                row.Controls.Add(GetTextCell(entry.LastName, "left"));
                row.Controls.Add(GetTextCell(entry.LastLogin.ToString(CultureInfo.CurrentUICulture), "left"));
                row.Controls.Add(GetTextCell(entry.LoginCount.ToString(CultureInfo.CurrentUICulture), "right"));
            }
            else if (args.Item.ItemType == ListItemType.Header)
            {
                row.Controls.Add(GetTextCell(Language.GetText(Portal.API.Module.GetModuleControl(this), "login"), "left"));
                row.Controls.Add(GetTextCell(Language.GetText(Portal.API.Module.GetModuleControl(this), "firstName"), "left"));
                row.Controls.Add(GetTextCell(Language.GetText(Portal.API.Module.GetModuleControl(this), "lastName"), "left"));
                row.Controls.Add(GetTextCell(Language.GetText(Portal.API.Module.GetModuleControl(this), "lastLogin"), "left"));
                row.Controls.Add(GetTextCell(Language.GetText(Portal.API.Module.GetModuleControl(this), "loginCount"), "left"));
            }
        }
Esempio n. 21
0
        private async Task AnimateLoginAsync()
        {
            LoginEntry.TextColor        = Color.Red;
            LoginEntry.PlaceholderColor = Color.Red;

            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(-10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(10, 0, 100, Easing.Linear);

            await LoginEntry.TranslateTo(0, 0, 100, Easing.Linear);

            LoginEntry.PlaceholderColor = Color.LightGray;

            LoginEntry.TextColor = Color.LightGray;
        }
Esempio n. 22
0
        public NewUserSignUpPage()
        {
            ViewModel      = new BaseViewModel();
            BindingContext = ViewModel;

            RelativeLayout    relativeLayout = new RelativeLayout();
            ActivityIndicator indicator      = new ActivityIndicator();

            var usernameEntry = new LoginEntry(1)
            {
                StyleId                 = "newUsernameEntry",
                Placeholder             = "Email",
                Keyboard                = Keyboard.Email,
                HorizontalTextAlignment = TextAlignment.Center,
            };
            var passwordEntry = new LoginEntry(1)
            {
                StyleId                 = "newPasswordEntry",
                Placeholder             = "Password",
                IsPassword              = true,
                HorizontalTextAlignment = TextAlignment.Center
            };
            var reEnterPasswordEntry = new LoginEntry(1)
            {
                StyleId                 = "reEnterPasswordEntry",
                Placeholder             = "Re-enter password",
                IsPassword              = true,
                HorizontalTextAlignment = TextAlignment.Center,
            };
            var saveUsernameButton = new StyledButton
            {
                CssStyle          = "button",
                StyleId           = "saveUsernameButton",
                Text              = "Save Username",
                TextColor         = Color.White,
                BackgroundColor   = AppColors.Green,
                BorderRadius      = 0,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.EndAndExpand
            };
            var usernameLabel = new StyledLabel
            {
                CssStyle          = "h2",
                Text              = "Please enter username",
                HorizontalOptions = LayoutOptions.Start
            };
            var passwordLabel = new StyledLabel
            {
                CssStyle          = "h2",
                Text              = "Please enter password",
                HorizontalOptions = LayoutOptions.Start
            };
            var reEnterPasswordLabel = new StyledLabel
            {
                CssStyle          = "h2",
                Text              = "Please re-enter password",
                HorizontalOptions = LayoutOptions.Start
            };

            relativeLayout.Children.Add(usernameLabel,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.Constant(AppSettings.Margin),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(usernameEntry,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(usernameLabel, (p, v) => v.Y + v.Height + AppSettings.ItemPadding),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(passwordLabel,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(usernameEntry, (p, v) => v.Y + v.Height + AppSettings.ItemPadding),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(passwordEntry,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(passwordLabel, (p, v) => v.Y + v.Height + AppSettings.ItemPadding),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(reEnterPasswordLabel,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(passwordEntry, (p, v) => v.Y + v.Height + AppSettings.ItemPadding),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(reEnterPasswordEntry,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(reEnterPasswordLabel, (p, v) => v.Y + v.Height + AppSettings.ItemPadding),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(saveUsernameButton,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToParent(p => p.Height - AppSettings.Margin - AppSettings.ButtonHeight),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin)
                                        );
            relativeLayout.Children.Add(indicator,
                                        xConstraint: Constraint.Constant(AppSettings.Margin),
                                        yConstraint: Constraint.RelativeToView(reEnterPasswordEntry, (p, v) => v.Y + v.Height),
                                        widthConstraint: Constraint.RelativeToParent(p => p.Width - 2 * AppSettings.Margin),
                                        heightConstraint: Constraint.RelativeToView(reEnterPasswordEntry, (p, v) => p.Height - v.Y - v.Height - AppSettings.Margin - AppSettings.ButtonHeight)
                                        );

            Content = relativeLayout;

            indicator.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy");

            if (Device.OS == TargetPlatform.Windows)
            {
                indicator.SetBinding(ActivityIndicator.IsVisibleProperty, "IsBusy");
            }

            saveUsernameButton.Clicked += async(object sender, EventArgs e) =>
            {
                ViewModel.IsBusy = true;

                if (String.IsNullOrEmpty(usernameEntry.Text))
                {
                    DisplayAlert("Error", "Username cannot be blank", "Ok");
                    ViewModel.IsBusy = false;
                    return;
                }
                else if (!usernameEntry.Text.Contains("@"))
                {
                    DisplayAlert("Error", "Username is invalid. Please enter a valid email address.", "Ok");
                    ViewModel.IsBusy = false;
                    return;
                }
                else if (String.IsNullOrEmpty(passwordEntry.Text))
                {
                    DisplayAlert("Error", "Password cannot be blank", "Ok");
                    ViewModel.IsBusy = false;
                    return;
                }
                else if (String.IsNullOrEmpty(reEnterPasswordEntry.Text))
                {
                    DisplayAlert("Error", "Please re-enter your password", "Ok");
                    ViewModel.IsBusy = false;
                    return;
                }
                else if (passwordEntry.Text != reEnterPasswordEntry.Text)
                {
                    DisplayAlert("Error", "Passwords don't match.", "Ok");
                    ViewModel.IsBusy = false;
                    return;
                }

                var result = await ParticleCloud.SharedInstance.SignupWithUserAsync(usernameEntry.Text, passwordEntry.Text);

                ViewModel.IsBusy = false;

                if (result == "Success")
                {
                    await DisplayAlert("Success", "Your account was successfully created. Now let's login.", "Ok");

                    await Navigation.PopAsync();
                }
                else
                {
                    DisplayAlert("Error", $"{result}", "Ok");
                }
            };
        }
Esempio n. 23
0
        void CreateGlobalChildren()
        {
            logo = new Image {
                HeightRequest = 30, Aspect = Aspect.AspectFit
            };
            loginLabel = new StyledLabel
            {
                CssStyle = "h1",
                Text     = "Login with your particle username",
                Opacity  = 0
            };
            loginEntry = new LoginEntry
            {
                StyleId     = "usernameEntry",
                Placeholder = "Email",
                Keyboard    = Keyboard.Email
            };
            passwordEntry = new LoginEntry
            {
                StyleId     = "passwordEntry",
                Placeholder = "Password",
                IsPassword  = true,
            };
            loginButton = new StyledButton
            {
                StyleId         = "loginButton",
                Text            = "LOGIN",
                TextColor       = Color.White,
                BackgroundColor = AppColors.Green,
                CssStyle        = "button",
                BorderRadius    = 0,
                HeightRequest   = AppSettings.ButtonHeight,
                Opacity         = 0
            };
            newUserSignUpButton = new StyledButton
            {
                StyleId         = "newUserButton",
                Text            = "SIGN-UP",
                TextColor       = Color.White,
                BackgroundColor = AppColors.Purple,
                CssStyle        = "button",
                BorderRadius    = 0,
                HeightRequest   = AppSettings.ButtonHeight,
                Opacity         = 0
            };

            loginButton.Clicked += (object sender, EventArgs e) =>
            {
                if (String.IsNullOrEmpty(loginEntry.Text) || String.IsNullOrEmpty(passwordEntry.Text))
                {
                    DisplayAlert("Error", "You must enter a username and password.", "Okay");
                    return;
                }

                Login(loginEntry.Text, passwordEntry.Text);
            };
            newUserSignUpButton.Clicked += (object sender, EventArgs e) =>
            {
                NewUserSignUp();
            };
        }
        public LoginEntry GetLoginEntry(string loginId)
        {
            LoginEntry entry;

            if (!_logins.TryGetValue(loginId, out entry))
            {
                Logger.Debug(
                    String.Format(
                        "Login {0} não foi encontrado na cache, obtendo informações.",
                        loginId));
                // chamada remota, tem que ficar fora de qualquer lock
                byte[] keyBytes;
                AsymmetricKeyParameter pubKey;
                LoginInfo info;
                try {
                    info   = _conn.LoginRegistry.getLoginInfo(loginId, out keyBytes);
                    pubKey = Crypto.CreatePublicKeyFromBytes(keyBytes);
                }
                catch (InvalidLogins) {
                    return(null);
                }
                _lock.EnterWriteLock();
                try {
                    // Checa novamente para ver se algo mudou após a finalização da
                    // chamada remota. A informação na cache deve ser mais confiável
                    // pois provavelmente é mais antiga, e assim o "deadline" deve ser
                    // mais acurado do que o que seria gerado agora.
                    if (!_logins.TryGetValue(loginId, out entry))
                    {
                        entry = new LoginEntry {
                            Publickey = pubKey,
                            KeyBytes  = keyBytes,
                            LoginId   = info.id,
                            Entity    = info.entity,
                            DeadLine  = DateTime.Now.Ticks
                        };
                        _logins.Set(loginId, entry);
                        Logger.Debug(String.Format(
                                         "Login {0} válido e adicionado à cache.", loginId));
                        return(entry.Clone());
                    }
                }
                finally {
                    _lock.ExitWriteLock();
                }
            }
            Logger.Debug(
                String.Format("Login {0} está na cache, procedendo à validação.",
                              loginId));
            // valida o login
            long deadline;

            _lock.EnterReadLock();
            try {
                deadline = entry.DeadLine;
            }
            finally {
                _lock.ExitReadLock();
            }
            if (deadline < DateTime.Now.Ticks)
            {
                int validity = _conn.LoginRegistry.getLoginValidity(loginId);
                if (validity <= 0)
                {
                    // login inválido
                    Logger.Debug(String.Format("Login {0} é inválido.", loginId));
                    return(null);
                }
                _lock.EnterWriteLock();
                try {
                    entry.DeadLine = DateTime.Now.Ticks + validity;
                }
                finally {
                    _lock.ExitWriteLock();
                }
            }
            Logger.Debug(String.Format("Login {0} é válido.", loginId));
            return(entry.Clone());
        }
Esempio n. 25
0
 public Task UpdateLoginTokenAsync(LoginEntry record)
 {
     throw new NotImplementedException("Updating passwords is not supported");
 }
Esempio n. 26
0
 public Task DropLoginEntryAsync(LoginEntry record)
 {
     throw new NotImplementedException("Deleting users is not supported");
 }
Esempio n. 27
0
    private void LoadLoginData()
    {
      LoginStatisticService service = (LoginStatisticService)Portal.API.Statistics.Statistic.GetService(typeof(LoginStatisticService));
      LoginStatisticData data = service.GetData(Context);

      List<LoginEntry> entries = new List<LoginEntry>();
      foreach (LoginStatisticData.TLoginRow row in data.TLogin.Rows)
      {
        Portal.API.Users.UserRow user = UserManagement.Users.FindById(row.UserId);
        LoginEntry entry = new LoginEntry();
        if (null != user)
        {
          // User was found, so use the actual user infos to show.
          entry.Login = user.login;
          entry.FirstName = user.SafeFirstName;
          entry.LastName = user.SafeSurName;
        }
        else
        {
          // User was deleted, so use cached infos.
          entry.Login = row.Login;
          entry.FirstName = row.FirstName;
          entry.LastName = row.LastName;
        }
        entry.LoginCount = row.LoginCount;
        entry.LastLogin = row.LastLogin;
        entries.Add(entry);
      }

      repeaterLogin.DataSource = entries;
      repeaterLogin.DataBind();
    }
Esempio n. 28
0
 private void FrameButton_Tapped(object sender, EventArgs e)
 {
     LoginEntry.Unfocus();
     PasswordEntry.Unfocus();
 }
        void CreateGlobalChildren()
        {
            logo       = new Image();
            logoSlogan = new Label
            {
                Opacity    = 0,
                Text       = "Delighting Developers.",
                TextColor  = Color.White,
                FontFamily = Device.OnPlatform(
                    iOS: "AppleSDGothicNeo-Light",
                    Android: "Droid Sans Mono",
                    WinPhone: "Comic Sans MS"),
                FontSize = 14
            };
            loginEntry = new LoginEntry
            {
                AutomationId = "usernameEntry",
                Placeholder  = "Username",
            };
            passwordEntry = new LoginEntry
            {
                AutomationId = "passwordEntry",
                Placeholder  = "Password",
                IsPassword   = true,
            };
            loginButton = new LoginButton(Borders.Thin)
            {
                AutomationId = "loginButton",
                Text         = "Login",
            };
            newUserSignUpButton = new LoginButton(Borders.None)
            {
                AutomationId = "newUserButton",
                Text         = "Sign-up",
            };
            forgotPasswordButton = new LoginButton(Borders.None)
            {
                AutomationId = "forgotPasswordButton",
                Text         = "Forgot Password?",
            };
            rememberMe = new Label
            {
                Opacity    = 0,
                Text       = "Remember Me",
                TextColor  = Color.White,
                FontFamily = Device.OnPlatform(
                    iOS: "AppleSDGothicNeo-Light",
                    Android: "Droid Sans Mono",
                    WinPhone: "Comic Sans MS"),
            };
            saveUsername = new Switch
            {
                AutomationId = "saveUsernameSwitch",
                IsToggled    = true,
                Opacity      = 0
            };

            loginButton.Clicked += (object sender, EventArgs e) =>
            {
                if (String.IsNullOrEmpty(loginEntry.Text) || String.IsNullOrEmpty(passwordEntry.Text))
                {
                    DisplayAlert("Error", "You must enter a username and password.", "Okay");
                    return;
                }

                Login(loginEntry.Text, passwordEntry.Text, saveUsername.IsToggled);
            };
            newUserSignUpButton.Clicked += (object sender, EventArgs e) =>
            {
                NewUserSignUp();
            };
            forgotPasswordButton.Clicked += (object sender, EventArgs e) =>
            {
                ForgotPassword();
            };
        }
Esempio n. 30
0
 public async Task Delete(LoginEntry item)
 {
     Items.Remove(item);
     await DbContext.SaveChangesAsync();
 }