Esempio n. 1
0
        /// <summary>
        /// Autentica la identidad del usuario y obtiene sus datos.
        /// </summary>
        /// <param name="loginClaims">Diccionario con los elementos probatorios de la identidad del usuario</param>
        /// <param name="setContext">Especifica si se debe crear el contexto de seguridad (Principal)</param>
        /// <returns>Identidad del usuario</returns>
        public static NucleoIdentity LogIn(Dictionary <string, object> loginClaims, bool setContext)
        {
            try
            {
                ClaimDictionary userClaims;

                userClaims = AuthenticationProvider.Authenticate(new ClaimDictionary(loginClaims));
                Alemana.Nucleo.Shared.DataHolder.SetValue(Nucleo.Shared.DataHolderKeys.Roles, userClaims["Roles"]);


                var identity = new NucleoIdentity(userClaims);

                if ((setContext && identity.IsAuthenticated))
                {
                    SetPrincipalToContext(new NucleoPrincipal(identity));
                }

                return(identity);
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, Defaults.DefaultExceptionPolicy);
                throw ex;
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            ChangeAuthetificationStrategy();
            Principal principal = null;

            do
            {
                Console.WriteLine("\n\nPlease authenticate:");
                Console.WriteLine("User:"******"Pasword:");
                string password = Console.ReadLine();

                principal = AuthProvider.Authenticate(userName, password);
                if (principal == null)
                {
                    Console.WriteLine("User or password invalid.");
                    Console.WriteLine("Do you want to change the authentication method? (S/N)");

                    string op = Console.ReadLine();

                    if (string.Equals(op, "S", StringComparison.OrdinalIgnoreCase))
                    {
                        ChangeAuthetificationStrategy();
                    }
                }
            } while (principal == null);

            Console.WriteLine("Successful authentication");
            Console.WriteLine(principal);

            Console.Read();
        }
Esempio n. 3
0
        public JsonResult Login([FromBody] UserLoginModel model)
        {
            return(RequestHandlers.Handle(() =>
            {
                if (string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.Password))
                {
                    throw new UnauthorizedAccessException("Email or Password was not filled");
                }

                IConfigurationSection options = config.GetSection("AuthOptions");

                int.TryParse(options["TokenLifeTimeInHours"], out int tokenLifeTime);

                AuthenticationProvider authProvider = new AuthenticationProvider(
                    ctx,
                    Encoding.UTF8.GetBytes(config.GetSection("SecretKeys")["IssuerSignInKey"]),
                    options["Issuer"],
                    options["audience"],
                    new TimeSpan(tokenLifeTime, 0, 0));

                string token = authProvider.Authenticate(model.Email, model.Password, out UserModel user);

                return new AuthenticatedUserModel
                {
                    Token = token,
                    User = user
                };
            }));
        }
Esempio n. 4
0
        /// <summary>
        /// Called before anything else.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <remarks>
        /// Looks after a <see cref="AuthorizationHeader"/> in the request and will
        /// use the <see cref="AuthenticationProvider"/> if found.
        /// </remarks>
        protected virtual void OnAuthentication(RequestContext context)
        {
            var authHeader = (AuthorizationHeader)context.Request.Headers[AuthorizationHeader.NAME];

            if (authHeader != null)
            {
                AuthenticationProvider.Authenticate(context.Request);
            }
        }
Esempio n. 5
0
 private void LoginButton_Click(object sender, RoutedEventArgs e)
 {
     if (AuthenticationProvider.Authenticate(usernameTextBox.Text, passwordTextBox.Text))
     {
         MainWindow mainWindow = new MainWindow();
         Application.Current.MainWindow = mainWindow;
         mainWindow.Show();
         this.Close();
     }
 }
Esempio n. 6
0
        /// <summary>
        /// Autentica la identidad del usuario y obtiene sus datos.
        /// </summary>
        /// <param name="loginClaims">Diccionario con los elementos probatorios de la identidad del usuario</param>
        /// <param name="setContext">Especifica si se debe crear el contexto de seguridad (Principal)</param>
        /// <returns>Identidad del usuario</returns>
        public static NucleoIdentity LogIn(Dictionary <string, object> loginClaims, bool setContext)
        {
            try
            {
                var userClaims = AuthenticationProvider.Authenticate(new ClaimDictionary(loginClaims));
                var identity   = new NucleoIdentity(userClaims);

                if (setContext)
                {
                    SetPrincipalToContext(new NucleoPrincipal(identity));
                }

                return(identity);
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, Defaults.DefaultExceptionPolicy);
                throw ex;
            }
        }
Esempio n. 7
0
 public bool OnAuthenticateUser(string login, string pass)
 {
     return(AuthenticationProvider.Authenticate(login, pass));
 }