public IActionResult Register([FromBody] RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                Service.User user = new Service.User {
                    UserName = model.Email, Email = model.Email
                };
                IdentityResult result = userManager.Create(user, model.Password);
                if (result.Succeeded)
                {
                    loginManager.Login(user, isPersistent: false);
                    logger.LogInformation(3, "User created a new account with password.");

                    DateTime requestAt = DateTime.Now;
                    DateTime expiresIn = requestAt + TokenAuthOption.ExpiresSpan;
                    string   token     = GenerateToken(user, expiresIn);

                    return(Ok(new
                    {
                        RequestAt = requestAt,
                        ExpiresIn = TokenAuthOption.ExpiresSpan.TotalSeconds,
                        TokeyType = TokenAuthOption.TokenType,
                        AccessToken = token
                    }));
                }
                AddErrors(result);
            }

            return(BadRequest(ModelState));
        }
Пример #2
0
 private void LoadUser(Service.User user)
 {
     try
     {
         DateTime dtnow  = DateTime.Now;
         bool     isOver = (dtnow - user.DueTime.Value).TotalSeconds >= 0;
         if (user.SiteName == "汽车之家")
         {
             lblCode.Text     = user.Id.ToString();
             lblEnd.Text      = user.DueTime.HasValue ? user.DueTime.ToString() : "";
             lblUserName.Text = user.UserName;
             lblUserType.Text = user.UserType == 0 ? "试用" : "付费";
             if (user.UserType == 1)
             {
                 AddLoginJob();
             }
         }
         else if (user.SiteName == "易车网")
         {
             label21.Text = user.Id.ToString();
             label18.Text = user.DueTime.HasValue ? user.DueTime.ToString() : "";
             label19.Text = user.UserName;
             label22.Text = user.UserType == 0 ? "试用" : "付费";
         }
         CheckSendOrder(user, isOver);
         CheckSendPrice(user, isOver);
         CheckSendNews(user, isOver);
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex.Message + ex.StackTrace);
     }
 }
        public IActionResult Login([FromBody] LoginModel model)
        {
            if (ModelState.IsValid)
            {
                Microsoft.AspNetCore.Identity.SignInResult result = loginManager.Login(model.Email, model.Password, model.RememberMe);
                if (result.Succeeded)
                {
                    logger.LogInformation(1, "User logged in.");

                    Service.User user      = userManager.GetUserByEmail(model.Email);
                    DateTime     requestAt = DateTime.Now;
                    DateTime     expiresIn = requestAt + TokenAuthOption.ExpiresSpan;
                    string       token     = GenerateToken(user, expiresIn);

                    return(Ok(new {
                        RequestAt = requestAt,
                        ExpiresIn = TokenAuthOption.ExpiresSpan.TotalSeconds,
                        TokeyType = TokenAuthOption.TokenType,
                        AccessToken = token
                    }));
                }
                else
                {
                    return(BadRequest("Invalid login attempt."));
                }
            }

            return(BadRequest(ModelState));
        }
Пример #4
0
 private void BtnOK_Click(object sender, RoutedEventArgs e)
 {
     if (labelDB.Content.ToString() == "Добавить пользователя")
     {
         Service.User user = new Service.User()
         {
             Name       = tbName.Text,
             Surname    = tbSurname.Text,
             Patronymic = tbPatronymic.Text,
             Login      = tbLogin.Text,
             Password   = tbPassword.Text,
             Role       = cbRole.Text
         };
         service.AddUser(user);
     }
     else if (labelDB.Content.ToString() == "Редактировать пользователя")
     {
         Service.User user = new Service.User()
         {
             Name       = tbName.Text,
             Surname    = tbSurname.Text,
             Patronymic = tbPatronymic.Text,
             Login      = tbLogin.Text,
             Password   = tbPassword.Text,
             Role       = cbRole.Text,
             ID_User    = id_user
         };
         service.UpdateUser(user);
     }
     dataGrid.ItemsSource = service.SelectUser();
     btnCancel.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
 }
Пример #5
0
        private async void button1_Click(object sender, EventArgs e)
        {
            Popups.PopupWaiting waiter = new Popups.PopupWaiting(this);
            Pop(this, waiter);
            Service.User u = await Service.SGSAPI3.TryLogin(textBox2.Text, textBox1.Text);

            waiter.Close();
        }
Пример #6
0
 private void BtnDel_Click(object sender, RoutedEventArgs e)
 {
     foreach (object SelectedItem in dataGrid.SelectedItems)
     {
         Service.User user = SelectedItem as Service.User;
         service.DeleteUser(user.ID_User);
     }
     dataGrid.ItemsSource = service.SelectUser();
 }
Пример #7
0
        // new Implementation
        public bool HasPasswordHash(Service.User user)
        {
            var currentUser = _db.Query <User>().Where(u => u.Email == user.Email).FirstOrDefault();

            if (currentUser == null)
            {
                return(false);
            }
            return(user.Password.Equals(currentUser.Password));
        }
Пример #8
0
        //new implementation
        public void CreateUser(Service.User user)
        {
            _db.Add(new User(user));
            _db.SaveChanges();

            var savedUser = FindByName(user.Email);

            user.UserId = savedUser.UserId;
            return;
        }
Пример #9
0
        public IActionResult Put(int id, [FromBody] Service.User user)
        {
            IdentityResult ret = userManager.Update(user);

            if (ret.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest(ret.Errors));
        }
Пример #10
0
        //new implementation
        public void RemoveFromRole(Service.User user, string roleName)
        {
            // get the role with the roleName passed
            var role = _db.Query <Role>().Where(r => r.RoleName == roleName).FirstOrDefault();

            // get the UserRole with the user and role values
            var userRole = _db.Query <UserRole>().Where(ur => ur.UserId == user.UserId && ur.RoleId == role.RoleId).SingleOrDefault();

            _db.Delete(userRole);
            _db.SaveChanges();
        }
        private string GenerateToken(Service.User user, DateTime expires)
        {
            JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();

            ClaimsIdentity identity = new ClaimsIdentity(new GenericIdentity(user.UserName, "TokenAuth"), new[] { new Claim("Id", user.Id.ToString()) });

            SecurityToken securityToken = handler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = TokenAuthOption.Issuer,
                Audience           = TokenAuthOption.Audience,
                SigningCredentials = TokenAuthOption.SigningCredentials,
                Subject            = identity,
                Expires            = expires
            });

            return(handler.WriteToken(securityToken));
        }
Пример #12
0
        /// <summary>
        /// 报价判断
        /// </summary>
        /// <param name="user"></param>
        /// <param name="isOver"></param>
        private void CheckSendPrice(Service.User user, bool isOver)
        {
            bool   canQuery = true;
            string message  = user.QueryNum.ToString();

            if (user.UserType == 0 || !user.Query)
            {
                if (user.QueryNum <= 0)
                {
                    canQuery = false;
                    message  = "非常抱歉,今天报价次数已使用完";
                }
            }
            else if (user.Query && isOver)
            {
                canQuery = false;
                message  = "非常抱歉,付费使用时间已到!";
            }
            if (canQuery)
            {
                if (Tool.site == Aide.Site.Qiche && user.SiteName == "汽车之家")
                {
                    lbl_QC_QueryNum.Text = user.Query ? "按到期时间计算" : user.QueryNum.ToString();
                }
                else if (Tool.site == Aide.Site.Yiche && user.SiteName == "易车网")
                {
                    label16.Text = user.Query ? "按到期时间计算" : user.QueryNum.ToString();
                }
                LoadJob_Query();
            }
            else
            {
                if (Tool.site == Aide.Site.Qiche && user.SiteName == "汽车之家")
                {
                    lbl_QC_QueryNum.Text = message;
                    jct_QC_Query.Enabled = false;
                    Tool.aideTimer.Dequeue(QC_Price_JobName);
                }
                else if (Tool.site == Aide.Site.Yiche && user.SiteName == "易车网")
                {
                    label16.Text         = message;
                    jct_YC_Query.Enabled = false;
                    Tool.aideTimer.Dequeue(YC_Price_JobName);
                }
            }
        }
Пример #13
0
        public async Task <ActionResult> Register(Service.User model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = _userManager.Create(model, model.Password);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(model, isPersistent : false, rememberBrowser : false);

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

            return(View(model));
        }
Пример #14
0
        /// <summary>
        /// 抢单判断
        /// </summary>
        /// <param name="user"></param>
        /// <param name="isOver"></param>
        private void CheckSendOrder(Service.User user, bool isOver)
        {
            bool   canOrder = true;
            string message  = user.DueTime.ToString();

            if (user.UserType == 0 || !user.SendOrder)
            {
                if (isOver)
                {
                    canOrder = false;
                    message  = "非常抱歉,今天抢单体验时间已到";
                }
            }
            else if (user.SendOrder && isOver)
            {
                canOrder = false;
                message  = "非常抱歉,付费使用时间已到!";
            }
            if (canOrder)
            {
                LoadOrder(user.SiteName);
            }
            else
            {
                if (user.SiteName == "汽车之家")
                {
                    lblQD_QC.Text        = message;
                    btnSendOrder.Enabled = btnStop.Enabled = false;
                    if (th_qc != null)
                    {
                        th_qc.Abort();
                    }
                }
                else
                {
                    lblQD_YC.Text       = message;
                    btnStart_YC.Enabled = btnStop_YC.Enabled = btnOrderYC.Enabled = false;
                    if (th_yc != null)
                    {
                        th_yc.Abort();
                    }
                }
            }
        }
Пример #15
0
        private void BtnUpdate_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                labelDB.Content     = "Редактировать пользователя";
                gridDB.Visibility   = Visibility.Visible;
                dataGrid.Visibility = Visibility.Hidden;

                Service.User user = dataGrid.SelectedItem as Service.User;
                tbName.Text       = user.Name;
                tbSurname.Text    = user.Surname;
                tbPatronymic.Text = user.Patronymic;
                tbLogin.Text      = user.Login;
                tbPassword.Text   = user.Password;
                cbRole.Text       = user.Role;
                id_user           = user.ID_User;
            }
            catch { }
        }
Пример #16
0
 public Service.ElSalvadorHotels[] GetHotelsListByID(Service.User user)
 {
     return(base.Channel.GetHotelsListByID(user));
 }
Пример #17
0
 public System.Threading.Tasks.Task <Service.ElSalvadorHotels[]> GetHotelsListByIDAsync(Service.User user)
 {
     return(base.Channel.GetHotelsListByIDAsync(user));
 }
Пример #18
0
 public ActionResult Register()
 {
     var model = new Service.User();
     return View(model);
 }
Пример #19
0
        private ViewResult LoadPersonalInfo(string userName, string passWord)
        {
            ViewResult vresult = new ViewResult();

            var htmlDoc = GetHtml(useradmin);

            try
            {
                StringBuilder sb = null;
                if (!htmlDoc.DocumentNode.OuterHtml.Contains("NonAuth"))
                {
                    var rowcount = Convert.ToInt32(htmlDoc.DocumentNode.SelectSingleNode("//*[@id=\"ContentPlaceHolder1_UpdatePanel1\"]/div/div/div[3]/ul/li[2]/strong").InnerText.Trim());

                    var infoformat = "姓名:{0};职位:{1};手机:{2}" + Environment.NewLine;
                    sb = new StringBuilder(rowcount * 25);

                    var trs = htmlDoc.DocumentNode.SelectNodes("//*[@id=\"ContentPlaceHolder1_dgvUserList\"]/tr");
                    for (int i = 1; i < trs.Count; i++)
                    {
                        var tr       = trs[i];
                        var name     = tr.SelectSingleNode("//*[@id=\"ContentPlaceHolder1_dgvUserList_UserManageHead_" + (i - 1).ToString() + "\"]").InnerText;
                        var rolename = tr.ChildNodes[2].InnerText.Trim();
                        var phone    = tr.ChildNodes[4].InnerText.Trim().Split('\r')[0];
                        sb.AppendFormat(infoformat, name, rolename, phone);
                    }

                    string type   = "ctl00%24ContentPlaceHolder1%24dgvUserList%24ctl{0}%24hideAccountType";
                    string level  = "ctl00%24ContentPlaceHolder1%24dgvUserList%24ctl{0}%24hideAccountLevel";
                    string id     = "ctl00%24ContentPlaceHolder1%24dgvUserList%24ctl{0}%24hideAccountId";
                    string admin  = "ctl00%24ContentPlaceHolder1%24dgvUserList%24ctl{0}%24hideAccountAdmin";
                    string roleid = "ctl00%24ContentPlaceHolder1%24dgvUserList%24ctl{0}%24hideAccountRoleId";

                    #region 分页
                    while (rowcount > 10)
                    {
                        var postdata = HttpHelper.URLEncode("ctl00$ContentPlaceHolder1$ScriptManager1=ctl00$ContentPlaceHolder1$UpdatePanel1|ctl00$ContentPlaceHolder1$AspnetPager1$AspNetPager1");
                        postdata += "&HADRDCCID=" + HttpHelper.URLEncode(htmlDoc.DocumentNode.SelectSingleNode("//*[@id=\"HADRDCCID\"]").GetAttributeValue("value", ""));
                        postdata += "&__EVENTTARGET=ctl00%24ContentPlaceHolder1%24AspnetPager1%24AspNetPager1";
                        postdata += "&__EVENTARGUMENT=2";
                        postdata += "&__VIEWSTATE=" + HttpHelper.URLEncode(htmlDoc.DocumentNode.SelectSingleNode("//*[@id=\"__VIEWSTATE\"]").GetAttributeValue("value", ""));
                        postdata += "&__VIEWSTATEGENERATOR=" + htmlDoc.DocumentNode.SelectSingleNode("//*[@id=\"__VIEWSTATEGENERATOR\"]").GetAttributeValue("value", "");
                        postdata += "&__VIEWSTATEENCRYPTED=";
                        postdata += "&__EVENTVALIDATION=" + HttpHelper.URLEncode(htmlDoc.DocumentNode.SelectSingleNode("//*[@id=\"__EVENTVALIDATION\"]").GetAttributeValue("value", ""));
                        postdata += "&ctl00%24imgUploadChangehidethumburl=&ctl00%24imgUploadChangehideUrl=&ctl00%24ContentPlaceHolder1%24ddlRoleName=&ctl00%24ContentPlaceHolder1%24txtUserName=&ctl00%24ContentPlaceHolder1%24txtUserMobile=";

                        for (int i = 1; i < trs.Count; i++)
                        {
                            var tr       = trs[i];
                            var type_t   = string.Format(type, (i + 1).ToString().PadLeft(2, '0'));
                            var level_t  = string.Format(level, (i + 1).ToString().PadLeft(2, '0'));
                            var id_t     = string.Format(id, (i + 1).ToString().PadLeft(2, '0'));
                            var admin_t  = string.Format(admin, (i + 1).ToString().PadLeft(2, '0'));
                            var roleid_t = string.Format(roleid, (i + 1).ToString().PadLeft(2, '0'));
                            postdata += string.Format("&{0}={1}", type_t, tr.SelectSingleNode("//*[@name=\"" + HttpHelper.URLDecode(type_t) + "\"]").GetAttributeValue("value", ""));
                            postdata += string.Format("&{0}={1}", level_t, tr.SelectSingleNode("//*[@name=\"" + HttpHelper.URLDecode(level_t) + "\"]").GetAttributeValue("value", ""));
                            postdata += string.Format("&{0}={1}", id_t, tr.SelectSingleNode("//*[@name=\"" + HttpHelper.URLDecode(id_t) + "\"]").GetAttributeValue("value", ""));
                            postdata += string.Format("&{0}={1}", admin_t, tr.SelectSingleNode("//*[@name=\"" + HttpHelper.URLDecode(admin_t) + "\"]").GetAttributeValue("value", ""));
                            postdata += string.Format("&{0}={1}", roleid_t, tr.SelectSingleNode("//*[@name=\"" + HttpHelper.URLDecode(roleid_t) + "\"]").GetAttributeValue("value", ""));
                        }
                        postdata += "&aspnet1CurrentPageIndex=1&__ASYNCPOST=true";

                        htmlDoc = Post(useradmin, postdata);
                        trs     = htmlDoc.DocumentNode.SelectNodes("//*[@id=\"ContentPlaceHolder1_dgvUserList\"]/tr");
                        for (int i = 1; i < trs.Count; i++)
                        {
                            var tr       = trs[i];
                            var name     = tr.SelectSingleNode("//*[@id=\"ContentPlaceHolder1_dgvUserList_UserManageHead_" + (i - 1).ToString() + "\"]").InnerText;
                            var rolename = tr.ChildNodes[2].InnerText.Trim();
                            var phone    = tr.ChildNodes[4].InnerText.Trim().Split('\r')[0];
                            sb.AppendFormat(infoformat, name, rolename, phone);
                        }
                        rowcount -= 10;
                    }
                    #endregion
                }
                Service.User user = new Service.User
                {
                    Company   = company,
                    CompanyID = "",
                    SiteName  = "易车网",
                    PassWord  = passWord,
                    UserName  = userName,
                    Status    = 1,
                    LinkInfo  = sb == null ? "" : sb.ToString()
                };

                var loginResult = Tool.service.UserLogin(user);

                if (loginResult.Result)
                {
                    Tool.userInfo_yc = loginResult.Data;
                }
                else
                {
                    vresult.Message = loginResult.Message;
                    vresult.Exit    = true;
                }
                vresult.Result = loginResult.Result;

                return(vresult);
            }
            catch (Exception ex)
            {
                vresult.Message = "登录失败,请重试!详询QQ:278815541。";
                vresult.Exit    = true;
                return(vresult);
            }
        }
Пример #20
0
 //new implementation
 public void DeleteUser(Service.User user)
 {
     _db.Delete(new User(user));
     _db.SaveChanges();
 }
Пример #21
0
        void Login()
        {
            if (!ValidateForm())
            {
                tbUsername.Enabled     = false;
                tbPassword.Enabled     = false;
                cbUseAnimation.Enabled = false;
                btnLogin.Enabled       = false;
                try
                {
                    Service.DCService service = new DrawingClient.Service.DCService();

                    if (!((Service.DrawingClientStatus)service.GetDrawingClientInUse()).DrawingClientInUse)
                    {
                        Service.User user = service.ValidateUser(tbUsername.Text, tbPassword.Text);
                        if (user != null)
                        {
                            //MR 12/22/09 Adding this code to deal with locked accounts.
                            if (user.LoginStatus == "LCK")
                            {
                                MessageBox.Show(TextRes.Get("LockedAccount", Program.ci), TextRes.Get("Login", Program.ci), MessageBoxButtons.OK, MessageBoxIcon.Error);
                                tbUsername.Enabled     = true;
                                tbPassword.Enabled     = true;
                                cbUseAnimation.Enabled = true;
                                btnLogin.Enabled       = true;
                            }
                            else
                            {
                                Common.Instance.UserID       = user.UserID;
                                Common.Instance.UserIDText   = user.UserIDText;
                                Common.Instance.UserLevel    = user.UserLevel;
                                Common.Instance.UseAnimation = cbUseAnimation.Checked;
                                service.SetDrawingClientInUse("DrawingClientOpen", tbUsername.Text);
                                this.Close();
                            }
                        }
                        else
                        {
                            MessageBox.Show(TextRes.Get("InvalidLogin", Program.ci), TextRes.Get("Login", Program.ci), MessageBoxButtons.OK, MessageBoxIcon.Error);
                            tbUsername.Enabled     = true;
                            tbPassword.Enabled     = true;
                            cbUseAnimation.Enabled = true;
                            btnLogin.Enabled       = true;
                        }
                    }
                    else
                    {
                        MessageBox.Show(TextRes.Get("DrawingClientInUse", Program.ci), TextRes.Get("Login", Program.ci), MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tbUsername.Enabled     = true;
                        tbPassword.Enabled     = true;
                        cbUseAnimation.Enabled = true;
                        btnLogin.Enabled       = true;
                    }
                }
                catch (Exception ex)
                {
                    Error.Log(ex, true);
                    tbUsername.Enabled     = true;
                    tbPassword.Enabled     = true;
                    cbUseAnimation.Enabled = true;
                    btnLogin.Enabled       = true;
                }
            }
            else
            {
                error = true;
            }
        }
Пример #22
0
 public string GetPasswordHash(Service.User user)
 {
     return(_db.Query <User>().Where(u => u.Email == user.Email).Select(u => u.Password).FirstOrDefault());
 }
Пример #23
0
 // new Implementation
 public void UpdateUser(Service.User user)
 {
     _db.Update(new User(user));
     _db.SaveChanges();
 }
Пример #24
0
 public System.Threading.Tasks.Task <bool> AuthenticateAsync(Service.User user)
 {
     return(base.Channel.AuthenticateAsync(user));
 }
Пример #25
0
 public bool Authenticate(Service.User user)
 {
     return(base.Channel.Authenticate(user));
 }
Пример #26
0
 public string[] GetUserRoles(Service.User user)
 {
     // get the user by the email passed in, then get the roles
     // and select on the list of role names and convert them to array
     return(_db.Query <User>().Where(u => u.Email == user.Email).SelectMany(u => u.UserRoles.Select(ur => ur.Role.RoleName)).ToArray());
 }
Пример #27
0
        public ActionResult Register()
        {
            var model = new Service.User();

            return(View(model));
        }
Пример #28
0
 // new Implementation
 public bool IsInRole(Service.User user, string roleName)
 {
     return(_db.Query <User>().Where(u => u.Email == user.Email).SelectMany(u => u.UserRoles.Select(ur => ur.Role.RoleName)).Contains(roleName));
 }
Пример #29
0
 //new implementation
 public void SetPasswordHash(Service.User user, string passwordHash)
 {
     user.Password = passwordHash;
 }
Пример #30
0
        /// <summary>
        /// 资讯判断
        /// </summary>
        /// <param name="user"></param>
        /// <param name="isOver"></param>
        private void CheckSendNews(Service.User user, bool isOver)
        {
            bool   canNews = true;
            string message = user.NewsNum.ToString();

            if (user.UserType == 0 || !user.News)
            {
                if (user.NewsNum <= 0)
                {
                    canNews = false;
                    message = "非常抱歉,今天发布资讯次数已使用完";
                }
            }
            else if (user.News && isOver)
            {
                canNews = false;
                message = "非常抱歉,付费使用时间已到!";
            }
            if (canNews)
            {
                if (user.SiteName == "汽车之家")
                {
                    lbl_QC_NewsNum.Text = user.News ? "按到期时间计算" : user.NewsNum.ToString();
                }
                else
                {
                    label14.Text = user.Query ? "按到期时间计算" : user.NewsNum.ToString();
                }
                LoadJob_News();
            }
            else
            {
                if (Tool.site == Aide.Site.Qiche && user.SiteName == "汽车之家")
                {
                    lbl_QC_NewsNum.Text = message;
                    colSitting.ReadOnly = true;
                    if (newListDTPBindingSource.DataSource != null)
                    {
                        var data = (List <NewListDTP>)newListDTPBindingSource.DataSource;
                        data.ForEach(item => {
                            item.Message = "付费时间已到";
                            item.Del     = "";
                            Tool.aideTimer.Dequeue(item.NewsId);
                        });
                        rowMergeView1.Refresh();
                    }
                }
                else if (Tool.site == Aide.Site.Yiche && user.SiteName == "易车网")
                {
                    label14.Text           = message;
                    colYC_Sitting.ReadOnly = true;
                    if (newListDTPBindingSource1.DataSource != null)
                    {
                        var data = (List <NewListDTP>)newListDTPBindingSource1.DataSource;
                        data.ForEach(item =>
                        {
                            item.Message = "付费时间已到";
                            item.Del     = "";
                            Tool.aideTimer.Dequeue(item.NewsId);
                        });
                        rowMergeView2.Refresh();
                    }
                }
            }
        }