/// <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; } }
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(); }
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 }; })); }
/// <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); } }
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(); } }
/// <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; } }
public bool OnAuthenticateUser(string login, string pass) { return(AuthenticationProvider.Authenticate(login, pass)); }