public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            if (passwordQuestion == null)
            {
                passwordQuestion = "";
            }
            if (passwordAnswer == null)
            {
                passwordAnswer = "";
            }
            var bll     = new SiteUsers();
            var oldInfo = bll.GetModelByJoin(username, providerUserKey);

            if (oldInfo != null)
            {
                status = MembershipCreateStatus.Success;
                return(new MembershipUser(this.Name, oldInfo.Named, oldInfo.Id, oldInfo.Email, oldInfo.PasswordQuestion, oldInfo.Comment, oldInfo.IsApproved, oldInfo.IsLockedOut, oldInfo.CreateDate, oldInfo.LastLoginDate, oldInfo.LastActivityDate, oldInfo.LastPasswordChangedDate, oldInfo.LastLockoutDate));
            }
            var appId    = Guid.Parse(new Applications().GetAspnetAppId(ApplicationName).ToString());
            var currTime = DateTime.Now;
            var mBll     = new SiteMembers();
            var userId   = Guid.NewGuid();
            var uInfo    = new SiteUsersInfo(appId, userId, "", username, username.ToLower(), "", false, currTime, currTime);
            var salt     = GenerateSalt();
            var mInfo    = new SiteMembersInfo(appId, userId, EncodePassword(password, (int)PasswordFormat, salt), (int)PasswordFormat, salt, "", email, email.ToLower(), passwordQuestion, passwordAnswer, isApproved, false, currTime, currTime, currTime, currTime, 0, currTime, 0, currTime, "");

            bll.InsertByOutput(uInfo);
            mBll.Insert(mInfo);
            oldInfo = bll.GetModelByJoin(username, providerUserKey);
            status  = MembershipCreateStatus.Success;
            return(new MembershipUser(this.Name, oldInfo.Named, oldInfo.Id, oldInfo.Email, oldInfo.PasswordQuestion, oldInfo.Comment, oldInfo.IsApproved, oldInfo.IsLockedOut, oldInfo.CreateDate, oldInfo.LastLoginDate, oldInfo.LastActivityDate, oldInfo.LastPasswordChangedDate, oldInfo.LastLockoutDate));
        }
        public override bool ValidateUser(string username, string password)
        {
            var bll   = new SiteUsers();
            var model = bll.GetModelByJoin(username, null);

            if (model == null)
            {
                return(false);
            }
            return(EncodePassword(password, model.PasswordFormat, model.PasswordSalt) == model.Password);
        }
        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            if (providerUserKey == null)
            {
                throw new ArgumentNullException("providerUserKey");
            }
            if (!(providerUserKey is Guid))
            {
                throw new ArgumentException(SM.GetString(SM.Membership_InvalidProviderUserKey), "providerUserKey");
            }
            var bll   = new SiteUsers();
            var model = bll.GetModelByJoin(null, providerUserKey);

            if (model == null)
            {
                return(null);
            }
            return(new MembershipUser(this.Name, model.Named, model.Id, model.Email, model.PasswordQuestion, model.Comment, model.IsApproved, model.IsLockedOut, model.CreateDate, model.LastLoginDate, model.LastActivityDate, model.LastPasswordChangedDate, model.LastLockoutDate));
        }
        public override MembershipUser GetUser(string username, bool userIsOnline)
        {
            if (string.IsNullOrEmpty(username))
            {
                username = HttpContext.Current.User.Identity.Name;
            }
            if (string.IsNullOrEmpty(username))
            {
                return(null);
            }
            var bll   = new SiteUsers();
            var model = bll.GetModelByJoin(username, null);

            if (model == null)
            {
                return(null);
            }
            return(new MembershipUser(this.Name, model.Named, model.Id, model.Email, model.PasswordQuestion, model.Comment, model.IsApproved, model.IsLockedOut, model.CreateDate, model.LastLoginDate, model.LastActivityDate, model.LastPasswordChangedDate, model.LastLockoutDate));
        }