示例#1
0
        public string DoLogin(string loginname, string password)
        {
            var users = _db.Users.Where(u => u.Nickname.Equals(loginname) || u.Email.Equals(loginname)).ToList();
            if (users.Count != 1)
            {
                throw new NotImplementedException();
            }

            User user = users.First();

            string hashedpw = new DBTek.Crypto.MD5_Hsr().HashString(password);

            TokenModel token = null;
            if (!user.Password.Equals(hashedpw))
            {
                throw new NotImplementedException();
            }

            token = TokenGenerator.GenerateLoginToken(user.UserId);

            _db.Tokens.Add(token);

            user.LastLoginDate = DateTime.Now;
            _db.MarkAsModified(user);

            _db.SaveChanges();

            return token.Token;
        }
示例#2
0
        public void ResetPassword(string email) {
            var user = _db.Users.Where(u => u.Email.Equals(email, StringComparison.CurrentCultureIgnoreCase)).Single();
            if (user == null) { throw new UserNotFoundException(); }

            string newPassword = TokenGenerator.GenerateToken(8);
            string hashedPassword = new DBTek.Crypto.MD5_Hsr().HashString(newPassword);

            user.Password = hashedPassword;
            _db.MarkAsModified(user);
            _db.SaveChanges();

            Mailer.SendMail(user.Email, Resources.PasswordResetEmailSubject,
                String.Format(Resources.PasswordResetEmailBody, user.Nickname, newPassword));

        }
示例#3
0
        public bool Register(string email, string password, string nickname)
        {
            if (String.IsNullOrEmpty(email))
            {
                return false;
            }
            if (String.IsNullOrEmpty(password))
            {
                return false;
            }

            string hashedpw = new DBTek.Crypto.MD5_Hsr().HashString(password);

            string token = TokenGenerator.GenerateRegistrationNumber();

            _db.Users.Add(new User
            {
                Confirmed = false,
                Email = email,
                //LastLoginDate = SqlDateTime.MinValue.Value,
                //LastRefreshDate = SqlDateTime.MinValue.Value,
                Nickname = nickname,
                Password = hashedpw,
                RegistrationDate = DateTime.Now,
                RegistrationNumber = token,
                UserId = Guid.NewGuid().ToString()
            });

            try{
                Mailer.SendMail(email, Resources.RegisterUserEmailSubject,
                    String.Format(Resources.RegisterUserEmailBody, nickname, token));
                _db.SaveChanges();
            }
            catch(Exception ex)
            {
                LOGGER.Error(ex);
                return false;
            }
            return true;
        }