Beispiel #1
0
        public override string APICreateToken(string email_s, string password_s, AppDbContext context)
        {
            ErrInfLogger.LockInstance.InfoLog("APICreateToken launched." + _logInfo);
            Users specifiedUser = context.Users.FirstOrDefault(t => t.Email == email_s);

            if (specifiedUser == null)
            {
                return(null);
            }
            if (Equals(_krypton.DecryptStringAES(specifiedUser.HashPassword, specifiedUser.Salt), password_s))
            {
                DateTime tokenExpiration = DateTime.Now.AddHours(12);

                int userId_i = (specifiedUser.Id.HasValue) ? specifiedUser.Id.Value : -1;

                if (userId_i == -1)
                {
                    return(null);
                }

                int permissionId_i = (specifiedUser.PermissionId.HasValue) ? specifiedUser.PermissionId.Value : 0;

                string token_s = _jwt.ReturnJWT(tokenExpiration, permissionId_i, userId_i);

                specifiedUser.AuthTokenExpiration = tokenExpiration;
                specifiedUser.AuthToken           = token_s;
                context.SaveChanges();
                return(token_s);
            }
            else
            {
                return(null);
            }
        }
        public override void APIPost(Users newUser, AppDbContext context)
        {
            ErrInfLogger.LockInstance.InfoLog("APIPost launched." + _logInfo);

            SqlParameter result = new SqlParameter("@result", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };

            context.Database.ExecuteSqlCommand("SELECT @result = (NEXT VALUE FOR IntSeq)", result);

            //(int)result.Value
            ErrInfLogger.LockInstance.InfoLog(result.Value.ToString());

            newUser.Id                  = (int)result.Value;
            newUser.PermissionId        = 0;
            newUser.AuthToken           = _jwt.ReturnJWT(System.DateTime.Now, 0, (int)result.Value);
            newUser.AuthTokenExpiration = System.DateTime.Now;
            newUser.Salt                = SaltGenerator.GenerateSalt();
            newUser.UserAccountStatus   = "normal";

            // encrypt password
            newUser.HashPassword = _krypton.EncryptStringAES(newUser.HashPassword, newUser.Salt);
            context.Users.Add(newUser);

            context.SaveChanges();
        }