Beispiel #1
0
        public async Task <IHttpActionResult> PutMemberLogin(int id, MemberLogin memberLogin)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != memberLogin.id)
            {
                return(BadRequest());
            }

            db.Entry(memberLogin).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MemberLoginExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IActionResult Login([FromForm] MemberLogin memberDetail)
        {
            try
            {
                _log4net.Info(nameof(Login) + " method invoked by the Username :"******"https://localhost:44392/api/Auth/Login", memberDetail);

                if (token != null)
                {
                    using (var client = new HttpClient())
                    {
                        var contentType = new MediaTypeWithQualityHeaderValue("application/json");
                        client.DefaultRequestHeaders.Accept.Add(contentType);
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                        HttpContext.Session.SetString("Username", memberDetail.Username);
                    }

                    return(RedirectToAction("Index", "Home"));
                }

                ModelState.Clear();
                ModelState.AddModelError(string.Empty, "Username or Password is Incorrect");
                return(View("Index"));
            }
            catch (Exception e)
            {
                ErrorViewModel error = new ErrorViewModel
                {
                    ErrorMessage = e.Message
                };
                _log4net.Info("Error occured in " + nameof(Login) + " Error message:  " + error.ErrorMessage);
                return(View("Error", error));
            }
        }
Beispiel #3
0
        public string Login(string username, string password)
        {
            try
            {
                var memberLogin = new MemberLogin()
                {
                    email    = username,
                    password = password
                };
                //Validate login:
                if (!ValidateMemberLogin(memberLogin))
                {
                    throw new Exception("Login fails!");
                }
                var token = GetTokenFromApi(memberLogin);
                Debug.WriteLine("Token lay trong login: " + token);

                SaveTokenToLocalStorage(token);
                return(token);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                return(null);
            }
        }
Beispiel #4
0
 public string Login(string username, string password)
 {
     try
     {
         var memberLogin = new MemberLogin()
         {
             email    = username,
             password = password
         };
         if (!ValidaTeMemberLogin(memberLogin))
         {
             throw new Exception("login fails!");
         }
         //lấy token từ api
         var            token          = GetTokenFromApi(memberLogin);
         CreateReadFile createReadFile = new CreateReadFile();
         createReadFile.SaveTokenToLocalStorage(token);
         return(token);
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         return(null);
     }
 }
        public ResultSet <Member> MemberLogin(MemberLogin member)
        {
            var result = new ResultSet <Member>();


            Member loginMember = _memberRepository.MemberLogin(new Member()
            {
                Email = member.NickName
            });

            if (loginMember == null)
            {
                result.Message = "Member not found";
                return(result);
            }


            if (string.IsNullOrEmpty(loginMember.PasswordHash) || !_hashProvider.VerifyHashString(member.Password, loginMember.PasswordHash, loginMember.PasswordSalt))
            {
                result.Message = "Invalid password";
                return(result);
            }
            result.Object  = loginMember;
            result.Message = "Operation success";
            result.Success = true;

            return(result);
        }
Beispiel #6
0
        private void ButtonLogin_Click(object sender, RoutedEventArgs e)
        {
            var         errors = new Dictionary <string, string>();
            MemberLogin mem    = new MemberLogin
            {
                email    = this.email.Text,
                password = this.password.Password
            };

            errors = mem.Validate();
            if (errors.Count == 0)
            {
                string token = memberService.Login(this.email.Text, this.password.Password);
                if (token == null)
                {
                    //Show errors
                }
                else
                {
                    //Show success
                    //Lay info tu APi bang token:
                    Member memberLogin = memberService.GetInformation(token);
                    MemberLoginAction.ShowMenuIfLogged();
                    Frame.Navigate(typeof(MySong));
                }
            }
            else
            {
                ShowError(errors);
            }
        }
        public async Task <IActionResult> PostMember([FromBody] MemberLogin member)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Member existMember = _context.Member.FirstOrDefault(m => m.Email == member.Email);

            if (existMember == null)
            {
                return(NotFound());
            }

            if (PasswordHandle.GetInstance().EncryPassword(member.Password, existMember.Salt) == null)
            {
                return(StatusCode(403, new { status = 403, message = "Invalid" }));
            }

            ShCredential credential = ShCredential.GenerateCredential(existMember.Id, CredentialScope.Basic);

            _context.ShCredentials.Add(credential);
            _context.SaveChanges();
            return(new JsonResult(credential));
        }
Beispiel #8
0
        public String Login(MemberLogin memberLogin)
        {
            var token = GetTokenFromApi(memberLogin);

            SaveTokenToFile(token);
            return(token);
        }
Beispiel #9
0
        private void ButtonLogin_OnClick(object sender, RoutedEventArgs e)
        {
            // tạo đối tượng member login từ giá trị của form.
            var memberLogin = new MemberLogin()
            {
                email    = this.Email.Text,
                password = this.Password.Password
            };

            // validate
            var dataContent = new StringContent(JsonConvert.SerializeObject(memberLogin),
                                                Encoding.UTF8, "application/json");
            HttpClient client          = new HttpClient();
            var        responseContent = client.PostAsync(LOGIN_URL, dataContent).Result.Content.ReadAsStringAsync().Result;
            JObject    jsonJObject     = JObject.Parse(responseContent);

            Debug.WriteLine(jsonJObject["token"]);
            Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

            Windows.Storage.StorageFile sampleFile = storageFolder.CreateFileAsync("sample.txt",
                                                                                   Windows.Storage.CreationCollisionOption.ReplaceExisting).GetAwaiter().GetResult();

            Windows.Storage.FileIO.WriteTextAsync(sampleFile, jsonJObject["token"].ToString()).GetAwaiter().GetResult();
            Debug.WriteLine(sampleFile.Path);
        }
        public ActionResult Register()
        {
            ClASDBEntities        db  = new ClASDBEntities();
            MemberLogin           obj = new MemberLogin();
            List <SelectListItem> l   = new List <SelectListItem>();
            var getdata = db.RoleDetails.ToList();

            foreach (var item in getdata)
            {
                if (item.RoleId == 1)
                {
                    continue;
                }
                else
                {
                    l.Add(new SelectListItem
                    {
                        Text  = item.RoleName,
                        Value = item.RoleId.ToString()
                    });
                }
            }
            DataModel dt = new DataModel();

            dt.ListR = l;
            return(View(dt));
        }
Beispiel #11
0
        private void metroButton1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtUserName.Text) || string.IsNullOrEmpty(txtPwd.Text))
            {
                this.txtUserName.Focus();
                MetroMessageBox.Show(this, "请输入用户名和密码", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            MemberLogin loginDto = new MemberLogin()
            {
                Pwd      = txtPwd.Text,
                UserName = txtUserName.Text
            };
            MemberServices mServices = new MemberServices();
            var            result    = mServices.Login(loginDto);

            if (result.Code == ResultCodeEnums.Error)
            {
                MetroMessageBox.Show(this, result.Msg, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                this.DialogResult = DialogResult.OK;//关键:设置登陆成功状态
                this.Close();
            }
        }
Beispiel #12
0
        private String GetTokenFromApi(MemberLogin memberLogin)

        {
            // thực hiện request lên api lấy token về.

            var dataContent = new StringContent(JsonConvert.SerializeObject(memberLogin),

                                                Encoding.UTF8, "application/json");

            var client = new HttpClient();

            var responseContent = client.PostAsync(ApiUrl.LOGIN_URL, dataContent).Result.Content.ReadAsStringAsync().Result;

            var jsonJObject = JObject.Parse(responseContent);

            Debug.WriteLine("Response: " + responseContent);

            MemberLogin resMember = JsonConvert.DeserializeObject <MemberLogin>(responseContent);

            Debug.WriteLine(resMember.email);


            if (jsonJObject["token"] == null)

            {
                throw new Exception("Login fails");
            }

            return(jsonJObject["token"].ToString());
        }
        //args.Cancel = true;

        private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            var memberLogin = new MemberLogin()
            {
                email    = this.emailTextBox.Text,
                password = this.passwordTextBox.Password,
            };
            var errors = new Dictionary <string, string>();

            errors = memberLogin.ValidateData();
            if (errors.Count == 0)
            {
                if (memberService.Login(memberLogin) != null)
                {
                    Naview.MainFrame.Navigate(typeof(MyInformation));
                    Naview.loginItem.Visibility    = Visibility.Collapsed;
                    Naview.registerItem.Visibility = Visibility.Collapsed;
                    Naview.myInfoItem.Visibility   = Visibility.Visible;
                    this.Result = SignInResult.SignInOK;
                }
                else
                {
                    this.login_fail.Text              = "Wrong login information!!";
                    this.login_fail.Visibility        = Visibility.Visible;
                    this.validate_email.Visibility    = Visibility.Collapsed;
                    this.validate_password.Visibility = Visibility.Collapsed;
                    args.Cancel = true;
                }
            }
            else
            {
                ValidateLogin(errors);
                args.Cancel = true;
            }
        }
        public async Task <IActionResult> PostMemberLogin([FromBody] MemberLogin memberLogin)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.MemberLogin.Add(memberLogin);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (MemberLoginExists(memberLogin.MemberId))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetMemberLogin", new { id = memberLogin.MemberId }, memberLogin));
        }
Beispiel #15
0
        private void ButtonLogin_OnClick(object sender, RoutedEventArgs e)
        {
            ResetMessage();
            MemberLogin memberLogin = new MemberLogin
            {
                email    = this.Email.Text,
                password = this.Password.Password
            };
            Dictionary <string, string> errors = Validate.ValidateLogin(memberLogin);

            if (errors.Count > 0)
            {
                if (errors.ContainsKey("Email"))
                {
                    EmailMessage.Text       = errors["Email"];
                    EmailMessage.Visibility = Visibility.Visible;
                }

                if (errors.ContainsKey("Password"))
                {
                    PasswordMessage.Text       = errors["Password"];
                    PasswordMessage.Visibility = Visibility.Visible;
                }
                return;
            }
            MemberServiceImp memberServiceImp = new MemberServiceImp();

            memberServiceImp.Login(Email.Text, Password.Password);
            var token  = memberServiceImp.GetTokenFromApi(memberLogin);
            var member = memberServiceImp.GetInformation(token);

            ResetLoginForm();
            GoToInfo(null, null);
        }
Beispiel #16
0
        private void ButtonLogin_OnClick(object sender, RoutedEventArgs e)
        {
            var memberLogin = new MemberLogin()
            {
                email    = this.Email.Text,
                password = this.Password.Password,
            };
            var errors = new Dictionary <string, string>();

            errors = memberLogin.ValidateData();
            if (errors.Count == 0)
            {
                if (memberService.Login(memberLogin) != null)
                {
                    Naview.MainFrame.Navigate(typeof(MyInformation));
                }
                else
                {
                    this.login_fail.Text              = "Wrong login information!!";
                    this.login_fail.Visibility        = Visibility.Visible;
                    this.validate_email.Visibility    = Visibility.Collapsed;
                    this.validate_password.Visibility = Visibility.Collapsed;
                }
            }
            else
            {
                ValidateLogin(errors);
            }
        }
        public OperResult Login(MemberLogin loginDto)
        {
            OperResult result = new OperResult();

            byte[] r   = Encoding.Default.GetBytes(loginDto.Pwd);  //tbPass为输入密码的文本框
            MD5    md5 = new MD5CryptoServiceProvider();

            byte[] output = md5.ComputeHash(r);
            loginDto.Pwd = BitConverter.ToString(output).Replace("-", "");  //tbMd5pass为输出加密文本的
            string    sql = string.Format("select * from fygs_member where fukuan>0 and fid>0 and yonghuming ='{0}'  and mima='{1}'", loginDto.UserName, loginDto.Pwd);
            DataTable dt  = Repository.MySqlHelper.ExecuteQuery(sql);

            if (dt.Rows.Count <= 0)
            {
                result.Code = ResultCodeEnums.Error;
                result.Msg  = "用户名或密码错误!请重新操作。";
            }
            else
            {
                result.Code            = ResultCodeEnums.success;
                loginDto.Cap           = int.Parse(dt.Rows[0]["cap"].ToString());
                LoginCurrUser.Cap      = loginDto.Cap;
                LoginCurrUser.UserName = loginDto.UserName;
            }
            return(result);
        }
Beispiel #18
0
 public String Login(string username, string password)
 {
     try
     {
         //tạo đối tượng member login từ giá trị của form.
         var memberLogin = new MemberLogin()
         {
             email    = username,
             password = password
         };
         // validate
         if (!ValidaTeMemberLogin(memberLogin))
         {
             throw new Exception("Login fails!");
         }
         // lấy token từ api.
         var token = GetTokenFromApi(memberLogin);
         //lưu token ra file để dùng lại
         SaveToken(token);
         GetInformation();
         Debug.WriteLine("TOken : " + token);
         return(token);
     }
     catch (Exception e)
     {
         Debug.WriteLine("Login fails: " + e.Message);
         return(null);
     }
 }
Beispiel #19
0
        public async Task <IHttpActionResult> PutMemberLogin(int id, MemberLogin memberLogin)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != memberLogin.id)
            {
                return(BadRequest());
            }

            MemberLogin memberLogin1 = await db.MemberLogins.FindAsync(id);

            if (memberLogin.Approved != null && memberLogin1.Approved != memberLogin.Approved)
            {
                memberLogin1.Approved = memberLogin.Approved;
            }
            if (memberLogin.FullName != null && memberLogin1.FullName != memberLogin.FullName)
            {
                memberLogin1.FullName = memberLogin.FullName;
            }
            if (memberLogin.Email != null && memberLogin1.Email != memberLogin.Email)
            {
                memberLogin1.Email = memberLogin.Email;
            }
            if (memberLogin.Phone != null && memberLogin1.Phone != memberLogin.Phone)
            {
                memberLogin1.Phone = memberLogin.Phone;
            }
            if (memberLogin.Active != null && memberLogin1.Active != memberLogin.Active)
            {
                memberLogin1.Active = memberLogin.Active;
            }
            if (memberLogin.Password != null && memberLogin1.Password != memberLogin.Password)
            {
                memberLogin1.Password = memberLogin.Password;
            }
            db.Entry(memberLogin1).State = EntityState.Modified;

            //db.Entry(memberLogin).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MemberLoginExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
 public string Login(string email, string password)
 {
     try
     {
         //tạo đối tượng member login từ giá trị của form.
         var memberLogin = new MemberLogin()
         {
             email    = email,
             password = password
         };
         // validate
         if (!ValidateMemberLogin(memberLogin))
         {
             throw new Exception("Login fails!");
         }
         // lấy token từ api.
         var token = GetTokenFromApi(memberLogin);
         //lưu token ra file để dùng lại
         SaveTokenToLocalStorage(token);
         return(token);
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         return(null);
     }
 }
        public async Task <IActionResult> PutMemberLogin([FromRoute] int id, [FromBody] MemberLogin memberLogin)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != memberLogin.MemberId)
            {
                return(BadRequest());
            }

            _context.Entry(memberLogin).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MemberLoginExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        internal static void SetDefault(MemberManagerDbContext context)
        {
            var currDate = DateTime.UtcNow;

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Member Manager
             * ------------------------------------------------------------------*/
            var manager = new MemberManager()
            {
                Identity   = Guid.NewGuid().ToString("N"),
                Name       = "System Member Manager",
                OwnerId    = 0,
                CreateDate = currDate,
                Settings   = new MemberManagerSettings()
                {
                    Status           = MemberManagerStatus.Active,
                    AutoValidateUser = true,
                    RestrictEmail    = true
                }
            };

            context.MemberManager.AddOrUpdate(e => e.Name, manager);
            context.SaveChanges();

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Member
             * ------------------------------------------------------------------*/
            var member = new Member()
            {
                Username    = "******",
                Email       = "*****@*****.**",
                DisplayName = "System Admin",
                CreateDate  = currDate,
                CryptoKey   = Guid.NewGuid().ToString("N"),
                Password    = Cryptography.GenerateHash("systemPassword"),
                Options     = new MemberOptions()
                {
                    IsValidated = true
                }
            };

            context.Member.AddOrUpdate(e => e.Email, member);
            context.SaveChanges();

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Member Login
             * ------------------------------------------------------------------*/
            var login = new MemberLogin()
            {
                MemberId        = member.Id,
                MemberManagerId = manager.Id,
                CreateDate      = currDate,
                Status          = MemberStatus.Active,
                ProviderKey     = Guid.NewGuid().ToString("N")
            };

            context.MemberLogin.AddOrUpdate(e => new { e.MemberManagerId, e.MemberId }, login);
            context.SaveChanges();
        }
Beispiel #23
0
 private bool ValidaTeMemberLogin(MemberLogin memberLogin)
 {
     if (memberLogin.email.Length > 0 & memberLogin.password.Length > 0)
     {
         return(true);
     }
     return(false);
 }
        public MemberCredential Login(MemberLogin memberLogin)
        {
            var httpClient = new HttpClient();
            var content    = new StringContent(JsonConvert.SerializeObject(memberLogin), Encoding.UTF8, "application/json");
            var response   = httpClient.PostAsync(ProjectConfiguration.MEMBER_LOGIN_URL, content).GetAwaiter().GetResult();

            return(JsonConvert.DeserializeObject <MemberCredential>(response.Content.ReadAsStringAsync().Result));
        }
        public IActionResult MemberData([FromBody] MemberLogin id)
        {
            UserTempStorage.email = id.MemberUsername;
            UserTempStorage.salt  = id.Salt;


            return(Ok(UserTempStorage.memberID));
        }
Beispiel #26
0
        public async Task <APIResult> LoginBySms([FromBody] LoginForSmsArgsModel args)
        {
            if (string.IsNullOrEmpty(args.Phone))
            {
                throw new ArgumentNullException("Phone");
            }
            if (string.IsNullOrEmpty(args.Code))
            {
                throw new ArgumentNullException("Code");
            }

            //通过用户名和用户Id获取和判断
            var memberId = memberDb.GetMemberIdByMemberPhone(args.Phone);

            if (memberId <= 0)
            {
                throw new Exception(string.Format("手机:{0}没有绑定会员", args.Phone));
            }

            memberDb.SetMemberSMSValiCodeTaskFinished(args.Phone, args.Code, "Login");

            var member = memberDb.Members
                         .Where(m => m.Id == memberId)
                         .Where(m => !m.IsDel)
                         .Select(m => new
            {
                Id       = m.Id,
                Email    = m.Email,
                Truename = m.Truename
            })
                         .FirstOrDefault();

            var memberLogin = new MemberLogin()
            {
                Flag      = CommonUtil.CreateNoncestr(18),
                LoginType = CookieAuthenticationDefaults.AuthenticationScheme,
                MemberId  = member.Id
            };

            memberDb.Add <MemberLogin>(memberLogin);
            await memberDb.SaveChangesAsync();

            List <Claim> claims = new List <Claim>();

            //var username = "******" + memberId;
            //claims.Add(new Claim(ClaimTypes.Name, username, ClaimValueTypes.String, null));
            claims.Add(new Claim(ClaimTypes.Name, memberLogin.Flag, ClaimValueTypes.String, null));
            claims.Add(new Claim("Truename", member.Truename, ClaimValueTypes.String));

            var userIdentity = new ClaimsIdentity("Form");

            userIdentity.AddClaims(claims);

            var principal = new ClaimsPrincipal(userIdentity);
            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

            return(Success());
        }
        /// <summary>
        /// Use to update the database record
        /// </summary>
        /// <param name="view">MemberLogin</param>
        /// <returns>MemberLogin</returns>
        internal MemberLogin ToEntity(MemberLogin view = null)
        {
            if (view == null)
            {
                view = new MemberLogin();
            }

            return(view);
        }
Beispiel #28
0
        public MemberLogin createAccount(MemberLogin memberLogin)
        {
            //DataTable tempTable = new DataTable();
            SetupUserServiceConnection();

            var securityInstance = new SecurityService();

            MemberLogin login = new MemberLogin();

            login.MemberPassword = memberLogin.MemberPassword;
            login.MemberId       = memberLogin.MemberId;
            login.MemberUsername = memberLogin.MemberUsername;
            login.MemberName     = memberLogin.MemberName;

            string salt = securityInstance.GenerateSalt(login.MemberPassword);

            //tempTable = GetBusinessLoginData();
            //FillUserList(tempTable);

            login.Salt = salt;

            string hashedInputPassword = securityInstance.HashingCheckLogin(login.MemberPassword, salt);

            login.MemberPassword = hashedInputPassword;

            using (SqlConnection sqlConnection = new SqlConnection(connectionString.GetSection("ConnectionStrings").GetSection("NinersConnection").Value))
            {
                SqlDataAdapter adapter = new SqlDataAdapter();

                adapter.TableMappings.Add("BusinessLogin", "Logins");

                sqlConnection.Open();

                SqlCommand command = new SqlCommand(
                    "INSERT INTO dbo.MemberLogin VALUES(" + login.MemberId + ",'" + login.MemberUsername + "','" + login.MemberPassword + "'," + 0 + ",'" + login.MemberName + "','NULL','" + salt + "');",
                    sqlConnection);

                command.CommandType = CommandType.Text;

                adapter.InsertCommand = command;

                //adapter.Insert(tempTable);

                command.ExecuteNonQuery();

                sqlConnection.Close();
            }

            //_context.MemberLogin.Add(login);
            //_context.SaveChanges();

            AuthenticateNewUser(login);
            //Logout(username);

            return(login);
        }
        private void ButtonLogin_OnClick(object sender, RoutedEventArgs e)
        {
            var memberLogin = new MemberLogin
            {
                email    = Email.Text,
                password = Password.Password
            };
            var memberCredential = this._memberService.Login(memberLogin);

            this._fileService.SaveMemberCredentialToFile(memberCredential);
        }
Beispiel #30
0
        public async Task <IHttpActionResult> GetMemberLogin(int id)
        {
            MemberLogin memberLogin = await db.MemberLogins.FindAsync(id);

            if (memberLogin == null)
            {
                return(NotFound());
            }

            return(Ok(memberLogin));
        }
        public async Task<string> ajax_MemberLogin(MemberLogin obj)
        {
            LoginResult rAjaxResult = new LoginResult();
            if (!ModelState.IsValid)
            {
                rAjaxResult.result = false;
                rAjaxResult.message = "資訊不完整";
                return defJSON(rAjaxResult);
            }

            #region 驗證碼檢查程序
            if (string.IsNullOrEmpty(Session["MemberLogin"].ToString()))
            {
                Session["MemberLogin"] = Guid.NewGuid();
                rAjaxResult.result = false;
                rAjaxResult.message = Resources.Res.Log_Err_ImgValideNotEquel;
                return defJSON(rAjaxResult);
            }

            rAjaxResult.vildate = Session["MemberLogin"].Equals(obj.validate) ? true : false;
            //#if DEBUG
            //            rAjaxResult.vildate = true;
            //#endif
            if (!rAjaxResult.vildate)
            {
                Session["MemberLogin"] = Guid.NewGuid(); //只要有錯先隨意產生唯一碼 以防暴力破解,新的CheckCode會在Validate產生。
                rAjaxResult.result = false;
                rAjaxResult.message = Resources.Res.Log_Err_ImgValideNotEquel;
                return defJSON(rAjaxResult);
            }
            #endregion
            var db0 = getDB0();
            obj.pwd = HttpUtility.UrlEncode(EncryptString.desEncryptBase64(obj.pwd));
            var get_user = db0.Sales.Where(x => x.account == obj.act & x.password == obj.pwd).FirstOrDefault();

            if (get_user != null)
            {
                #region 前台_會員登入用cookie
                Response.Cookies.Add(new HttpCookie(CommWebSetup.WebCookiesId + ".member_id", Server.UrlEncode(EncryptString.desEncryptBase64(get_user.sales_no))));
                Response.Cookies.Add(new HttpCookie(CommWebSetup.WebCookiesId + ".member_name", Server.UrlEncode(get_user.sales_name)));
                //設定過期時間1天
                //Response.Cookies[CommWebSetup.WebCookiesId + ".member_id"].Expires = DateTime.Now.AddDays(1);
                //Response.Cookies[CommWebSetup.WebCookiesId + ".member_name"].Expires = DateTime.Now.AddDays(1);
                #endregion
                #region 後台_會員登入用cookie
                Session["CheckCode"] = "jcin";


                #region 不同等級(rank)用不同帳號登入
                string login_model = string.Empty;
                if (get_user.rank == (int)SalesRankState.managementOffice)
                {//管理處
                    login_model = await ajax_Login(new LoginViewModel()
                    {
                        account = "ManagementOffice",
                        password = "******",
                        lang = "zh-TW",
                        rememberme = false,
                        validate = "jcin"
                    });
                }
                else if (get_user.rank == (int)SalesRankState.operationsCenter)
                {//營運中心
                    login_model = await ajax_Login(new LoginViewModel()
                    {
                        account = "OperationsCenter",
                        password = "******",
                        lang = "zh-TW",
                        rememberme = false,
                        validate = "jcin"
                    });
                }
                else if (get_user.rank == (int)SalesRankState.manager)
                {//經理人
                    login_model = await ajax_Login(new LoginViewModel()
                    {
                        account = "SalesManager",
                        password = "******",
                        lang = "zh-TW",
                        rememberme = false,
                        validate = "jcin"
                    });
                }
                else
                {//共享會員(一般會員)
                    login_model = await ajax_Login(new LoginViewModel()
                    {
                        account = "user",
                        password = "******",
                        lang = "zh-TW",
                        rememberme = false,
                        validate = "jcin"
                    });
                }
                #endregion
                LoginResult trnResult = Newtonsoft.Json.JsonConvert.DeserializeObject<LoginResult>(login_model);
                if (trnResult.result)
                {
                    Response.Cookies.Add(new HttpCookie("user_login", Server.UrlEncode(EncryptString.desEncryptBase64("Y"))));
                }

                #endregion

                rAjaxResult.result = true;
                rAjaxResult.url = Url.Content("~");
                return defJSON(rAjaxResult);
            }
            else
            {
                rAjaxResult.result = false;
                rAjaxResult.message = "帳號或密碼錯誤 請重新輸入";
                return defJSON(rAjaxResult);
            }
        }
        public async Task<string> ajax_MemberLogin(MemberLogin obj)
        {
            LoginResult rAjaxResult = new LoginResult();
            if (!ModelState.IsValid)
            {
                rAjaxResult.result = false;
                rAjaxResult.message = "資訊不完整";
                return defJSON(rAjaxResult);
            }

            #region 驗證碼檢查程序
            if (string.IsNullOrEmpty(Session["MemberLogin"].ToString()))
            {
                Session["MemberLogin"] = Guid.NewGuid();
                rAjaxResult.result = false;
                rAjaxResult.message = Resources.Res.Log_Err_ImgValideNotEquel;
                return defJSON(rAjaxResult);
            }

            rAjaxResult.vildate = Session["MemberLogin"].Equals(obj.validate) ? true : false;
//#if DEBUG
//            rAjaxResult.vildate = true;
//#endif
            if (!rAjaxResult.vildate)
            {
                Session["MemberLogin"] = Guid.NewGuid(); //只要有錯先隨意產生唯一碼 以防暴力破解,新的CheckCode會在Validate產生。
                rAjaxResult.result = false;
                rAjaxResult.message = Resources.Res.Log_Err_ImgValideNotEquel;
                return defJSON(rAjaxResult);
            }
            #endregion
            var db0 = getDB0();
            var get_user = db0.Member.Where(x => (x.member_account == obj.act || (x.email == obj.act & x.email != null)) && x.member_password == obj.pwd).FirstOrDefault();

            if (get_user != null)
            {
                Response.Cookies.Add(new HttpCookie(CommWebSetup.WebCookiesId + ".member_id", Server.UrlEncode(EncryptString.desEncryptBase64(get_user.member_id.ToString()))));
                Response.Cookies.Add(new HttpCookie(CommWebSetup.WebCookiesId + ".member_name", Server.UrlEncode(get_user.member_name)));
                //設定過期時間1天
                //Response.Cookies[CommWebSetup.WebCookiesId + ".member_id"].Expires = DateTime.Now.AddDays(1);
                //Response.Cookies[CommWebSetup.WebCookiesId + ".member_name"].Expires = DateTime.Now.AddDays(1);

                rAjaxResult.result = true;
                rAjaxResult.url = Url.Content("~/News");
                return defJSON(rAjaxResult);
            }
            else
            {
                rAjaxResult.result = false;
                rAjaxResult.message = "帳號或密碼錯誤 請重新輸入";
                return defJSON(rAjaxResult);
            }
        }
        public async Task<string> ajax_MemberLogin(MemberLogin obj)
        {

            ResultInfo rAjaxResult = new ResultInfo();
            var db0 = getDB0();
            var get_user = db0.會員.Where(x => x.帳號 == obj.act && x.密碼 == obj.pwd).FirstOrDefault();

            if (get_user != null)
            {
                Session["CheckCode"] = "jcin";

                var login_model = await ajax_Login(new LoginViewModel()
                {
                    account = "user",
                    password = "******",
                    lang = "zh-TW",
                    rememberme = false,
                    validate="jcin"
                });

                LoginResult trnResult = Newtonsoft.Json.JsonConvert.DeserializeObject<LoginResult>(login_model);
                if (trnResult.result)
                {
                    Response.Cookies.Add(new HttpCookie("user_id", Server.UrlEncode(EncryptString.desEncryptBase64(get_user.流水號.ToString()))));
                    Response.Cookies.Add(new HttpCookie("user_name", Server.UrlEncode(get_user.姓名)));
                    Response.Cookies.Add(new HttpCookie("user_login", Server.UrlEncode(EncryptString.desEncryptBase64("Y"))));
                }

                rAjaxResult.result = true;
                return defJSON(rAjaxResult);
            }
            else
            {
                rAjaxResult.result = false;
                rAjaxResult.message = "帳號或密碼錯誤 請重新輸入";
                return defJSON(rAjaxResult);
            }
        }