Пример #1
0
        private string getToken(DTOAuthentication utente)
        {
            using (var context = new MAuthentication.AuthenticationModel())
            {
                var password = utente.EncryptedPassword;
                if (utente == null)
                {
                    return(null);
                }

                var user = GetByCondition(x => string.Equals(x.UserName, utente.UserName, StringComparison.InvariantCultureIgnoreCase) && x.Password.Equals(password) && x.Active);
                if (user == null)
                {
                    return(string.Empty);
                }
                if (string.IsNullOrEmpty(user.Token))
                {
                    generateNewToken(user);
                }
                user.CreationDateTime = DateTime.UtcNow;
                UpdateLoginDate(user);
                utente.Token = user.Token;
                return(user.Token);
            }
        }
Пример #2
0
 //TODO: deve essere parte della chiamata a webapi (provare con  Application_AuthorizeRequest o simili)
 public void SetLastCallDateTime(string token)
 {
     using (var context = new MAuthentication.AuthenticationModel())
     {
         var tabuser = context.Users.FirstOrDefault(x => x.Token == token);
         if (tabuser == null)
         {
             return;
         }
         tabuser.LastRequestDateTime  = DateTime.UtcNow;
         context.Entry(tabuser).State = System.Data.Entity.EntityState.Modified;
         context.SaveChanges();
     }
 }
Пример #3
0
 protected void UpdateLoginDate(DTOAuthentication user)
 {
     using (var context = new MAuthentication.AuthenticationModel())
     {
         var tabuser = context.Users.FirstOrDefault(x => x.Token.Equals(user.Token));
         if (user == null)
         {
             return;
         }
         user.CreationDateTime        = DateTime.UtcNow;
         tabuser.LastRequestDateTime  = DateTime.UtcNow;
         context.Entry(tabuser).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
Пример #4
0
 protected DTOAuthentication GetByCondition(Func <Users, bool> expression)
 {
     using (var context = new MAuthentication.AuthenticationModel())
     {
         var user = context.Users.FirstOrDefault(expression);
         if (user == null)
         {
             return(null);
         }
         return(new DTOAuthentication
         {
             CreationDateTime = user.ActivationDate,
             LastRequestTime = user.LastRequestDateTime,
             Token = user.Token,
             UserName = user.UserName,
             EncryptedPassword = user.Password, IsActive = user.Active
         });
     }
 }
Пример #5
0
        protected string encrypt(string strToEncrypt)
        {
            using (var context = new MAuthentication.AuthenticationModel())
            {
                if (string.IsNullOrEmpty(Options.CryptEntropyValues.OptionValue))
                {
                    var bytes = new byte[20];
                    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
                    rng.GetBytes(bytes);
                    Options.CryptEntropyValues.OptionValue = Convert.ToBase64String(bytes);
                }

                if (Options.SaltStringBytes.OptionValue.Length <= 0)
                {
                    Options.SaltStringBytes.OptionValue = StringCipher.Generate256BitsOfRandomEntropy();
                }
                if (Options.IvStringBytes.OptionValue.Length <= 0)
                {
                    Options.IvStringBytes.OptionValue = StringCipher.Generate256BitsOfRandomEntropy();
                }
                return(StringCipher.Encrypt(strToEncrypt, Options.CryptEntropyValues.OptionValue, Options.SaltStringBytes.OptionValue, Options.IvStringBytes.OptionValue));
            }
        }