Пример #1
0
        public bool RegisterMailVerify(Member Model)//string Account, string Username
        {
            //AutoMail實體化
            AutoMailClass mail = new AutoMailClass();

            //Random 亂數實體化
            Random rnd = new Random();

            //產生 100000~999999 之一的亂數
            string code = rnd.Next(100000, 999999 + 1).ToString();

            //發送註冊驗證信
            if (mail.RegisterVerify(Model.Account, Model.Username, code))
            {
                //把驗證碼寫進資料庫
                //sql where
                var sqlWhere = string.Format("Account = {0}", SqlVal2(Model.Account));

                //sql str
                var sqlStr = string.Format("UPDATE Member SET MailCheckCode = {0}, MailCheck = {1} where {2} and 1=1", SqlVal2(code), SqlVal2("0"), sqlWhere);

                //SQL Check Update成功(True)或失敗(False)
                return(_DB_Execute(sqlStr) == 1 ? true : false);
            }
            else
            {
                //信件發送失敗
                return(false);
            }
        }
Пример #2
0
        public bool PasswordMailVerify(Member Model)
        {
            //SQL Insert Member
            var sqlStr = string.Format("select Account,Username from [dbo].[Member] where Account = {0}", SqlVal2(Model.Account));

            //SQL Check
            var data = _DB_GetData(sqlStr);

            //資料庫內是否有此帳號
            if (data.Rows.Count > 0)
            {
                //AutoMail實體化
                AutoMailClass mail = new AutoMailClass();

                #region 亂數密碼
                string ranNumber = "0123456789";
                string ranUpper  = "ABCDEFGHJKLMNOPQRSTUVWXYZ";
                string ranLower  = "abcdefghijkmnopqrstuvwxyz";
                string ranSymbol = "!@#$%^&*";

                //密碼長度
                int passwordLength = 10;

                //密碼 char
                char[] chars = new char[passwordLength];

                //Random 亂數實體化
                Random rnd = new Random();

                //開始亂數
                for (int i = 0; i < passwordLength; i++)
                {
                    if (i % 5 == 0)
                    {
                        chars[i] = ranNumber[rnd.Next(0, ranNumber.Length)];
                    }
                    else if (i % 3 == 0)
                    {
                        chars[i] = ranUpper[rnd.Next(0, ranUpper.Length)];
                    }
                    else if (i % 2 == 0)
                    {
                        chars[i] = ranLower[rnd.Next(0, ranLower.Length)];
                    }
                    else
                    {
                        chars[i] = ranSymbol[rnd.Next(0, ranSymbol.Length)];
                    }
                }

                //New Password
                string pwd = new string(chars);
                #endregion

                //發送新密碼
                if (mail.ForgetPasswordSend(Model.Account, data.Rows[0].ItemArray.GetValue(1).ToString(), pwd))
                {
                    //把新密碼寫進資料庫
                    //sql where
                    var sqlWhere = string.Format("Account = {0}", SqlVal2(Model.Account));

                    //sql str
                    sqlStr = string.Format("UPDATE Member SET Password = {0}, PwdChangeCheck = {1}, ModifyTime = {2} where {3} and 1=1",
                                           SqlVal2(SHA256_Encryption(pwd)), SqlVal2("1"), DBC.ChangeTimeZone(), sqlWhere);

                    //SQL Check Update成功(True)或失敗(False)
                    return(_DB_Execute(sqlStr) == 1 ? true : false);
                }
                else
                {
                    //信件發送失敗
                    return(false);
                }
            }
            else
            {
                //寄送失敗 找不到此帳號
                return(false);
            }
        }