Пример #1
0
        public async Task <IActionResult> Login(AccountLoginDTO accountLoginDTO)
        {
            var loginAccount = await _repo.Login(accountLoginDTO.Username, accountLoginDTO.Password);

            if (loginAccount == null)
            {
                return(Unauthorized());
            }
            var claims = new[] {
                new Claim(ClaimTypes.NameIdentifier, loginAccount.Id.ToString()),
                new Claim(ClaimTypes.Name, loginAccount.Username)
            };
            var key             = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_config.GetSection("AppSettings:Token").Value));
            var creds           = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);
            var tokenDescriptor = new SecurityTokenDescriptor()
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddMinutes(30),
                SigningCredentials = creds
            };
            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(tokenDescriptor);
            var returnUser   = _mapper.Map <AccountForDetailDTO>(loginAccount);

            return(Ok(new
            {
                tokenString = tokenHandler.WriteToken(token),
                user = returnUser
            }));
        }
Пример #2
0
        public static string UserInfo(AccountLoginDTO accountLoginDTO)
        {
            SDK = new NLECloudAPI(TempInfo.API_HOST);
            var yxh = SDK.UserLogin(accountLoginDTO);

            return(yxh.ResultObj.CollegeName);
        }
Пример #3
0
        private void button_login_Click(object sender, RoutedEventArgs e)
        {
            AccountLoginDTO accountLoginDTO = new AccountLoginDTO(); //实例化AccountLoginDTO
            {                                                        //将控件中的账号密码传入云平台
                accountLoginDTO.Account      = username.Text;
                accountLoginDTO.Password     = password.Password;
                accountLoginDTO.IsRememberMe = (click_remeberme.IsChecked == true);
            }
            // ResultMsg<AccountLoginResultDTO> resultMsg = SDK.UserLogin(accountLoginDTO);
            bool isLogin = ForLogin.UserLogin(accountLoginDTO);

            if (click_remeberme.IsChecked == true)
            {
                password.Password = accountLoginDTO.Password;
            }
            if (isLogin)
            {
                //schoolname = resultMsg.ResultObj.CollegeName;
                //accesstoken = resultMsg.ResultObj.AccessToken;
                MessageBox.Show("登录成功!,您位于" + ForLogin.UserInfo(accountLoginDTO) + "\n即将进入排队系统!", "登录成功");
                new MainWindow().Show();
                this.Close();
            }

            else
            {
                MessageBox.Show("登录失败!,请重试", "登录失败");
            }
        }
Пример #4
0
        private void btn_login_Click(object sender, EventArgs e)
        {
            var  input_username = username.Text;
            var  input_password = password.Text;
            bool res            = login_passwd(input_username, input_password);

            if (res)
            {
                SDK = new NLECloudAPI("http://api.nlecloud.com");
                AccountLoginDTO submitData = new AccountLoginDTO()
                {
                    Account      = input_username,
                    Password     = input_password,
                    IsRememberMe = false
                };
                Login_obj = SDK.UserLogin(submitData);
                Login_res = Login_obj.IsSuccess();
                if (Login_res)
                {
                    accessToken = Login_obj.ResultObj.AccessToken;
                    Form1 f1 = new Form1(SDK, Login_obj, Login_res);
                    f1.Show();
                    this.Hide();
                }
            }
            else
            {
                MessageBox.Show("账号或密码错误,请重新输入!!!", "提示");
            }
        }
Пример #5
0
        public AccountLoginResultDTO Login(AccountLoginDTO dto)
        {
            AccountLoginResultDTO result = new AccountLoginResultDTO();

            var    loginUser = _userService.Single(m => m.LoginName == dto.UserName);
            string password  = EncryptHelper.Encrypt(dto.Password);

            if (loginUser != null && loginUser.LoginPWD == password)
            {
                result.IsSuccess = true;
            }
            else
            {
                result.IsSuccess = false;
                result.Message   = "用户名或密码错误";
                return(result);
            }


            string cookieValueToEncrypt = string.Format("{0}_{1}_{2}", loginUser.UserID, loginUser.LoginName, DateTime.Now);
            string encryptCookieValue   = EncryptHelper.Encrypt(cookieValueToEncrypt);
            string cacheKey             = string.Format("AccountService_Login_{0}", loginUser.UserID);

            _cache.Remove(cacheKey);
            _cache.Set(cacheKey, encryptCookieValue, TimeSpan.FromHours(1));

            result.CookieValue         = encryptCookieValue;
            result.CookieValueCacheKey = Base64Helper.Base64Encode(cacheKey);

            return(result);
        }
        public void Button_Click_login(object sender, RoutedEventArgs e)
        {
            SDK = new NLECloudAPI("http://api.nlecloud.com");
            SentencedToEmpty();
            ProgressBar.IsIndeterminate = true;
            //string LocalLoginAuthentication = ""
            AccountLoginDTO data_account = new AccountLoginDTO() //实例化登录信息
            {
                Account  = getUsername.Text,                     //从xaml中的TextBox中的name中获取账号文本
                Password = getPassword.Password                  //从xaml中的PasswordBox中的name中获取密码
            };


            /*
             * 自己写的账号密码判空提示
             * 缺陷:代码冗余,且不符合使用逻辑
             * 改进:使用this.getUsername.Focus聚焦文本框提示用户、使用return跳出方法
             * while (LocalLoginAuthentication == "")
             * {
             *  LocalLoginAuthentication = "账号密码判空通过";
             *  if (getUsername.Text == "")
             *  {//账号判空提示
             *      MessageBox.Show("账号不能为空!", "登陆失败");
             *      LocalLoginAuthentication = "";
             *      break;
             *  }
             *  //密码判空提示
             *  if (getPassword.Password == "")
             *  {
             *        LocalLoginAuthentication = "";
             *        MessageBox.Show("密码不能为空!", "登陆失败");
             *        break;
             *  }
             * }
             */
            //Thread.Sleep(5000);//全界面Sleep 5秒
            ResultMsg <AccountLoginResultDTO> data_account_verify = SDK.UserLogin(data_account);

            if (data_account_verify.IsSuccess())
            {//问题:输入账号时,textbox内预留的提示文字应消失(×)
             //问题:password内没有预留的提示文字(√)
             //问题:记住密码(×)

                Schoolname  = data_account_verify.ResultObj.CollegeName; //获取ResultObj.CollegeName学校名
                accessToken = data_account_verify.ResultObj.AccessToken; //获取ResultObj.AccessToken,用于后续API调用
                MessageBox.Show("登陆成功!,您位于" + Schoolname + "\n即将进入空调控制器!", "登录成功");
                MainWindow mainWindow = new MainWindow();
                mainWindow.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("登录失败!,请重试", "登录失败");
            }
        }
Пример #7
0
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            AccountLoginDTO loginDTO = new AccountLoginDTO()
            {
                Account = "ytvciot", Password = "******"
            };

            ResultMsg <AccountLoginResultDTO> result = api.UserLogin(loginDTO);

            token = result.ResultObj.AccessToken;
        }
Пример #8
0
        public static bool UserLogin(AccountLoginDTO dto)
        {
            SDK = new NLECloudAPI(TempInfo.API_HOST);
            var qry = SDK.UserLogin(dto);

            if (qry.IsSuccess())
            {
                TempInfo.Token = qry.ResultObj.AccessToken;
                return(true);
            }
            return(false);
        }
Пример #9
0
        public static bool UserLogin(AccountLoginDTO accountLoginDTO)
        {//以布尔值的形式返回给LoginWindow登录成功/失败信息
            SDK = new NLECloudAPI(TempInfo.API_HOST);
            var yxh = SDK.UserLogin(accountLoginDTO);

            if (yxh.IsSuccess())
            {
                TempInfo.Token = yxh.ResultObj.AccessToken;
                return(true);
            }
            return(false);
        }
        private void Login()
        {
            AccountLoginDTO dto = new AccountLoginDTO()
            {
                Account = "ytvciot", Password = "******"
            };
            ResultMsg <AccountLoginResultDTO> result = api.UserLogin(dto);

            if (result.IsSuccess())
            {
                token = result.ResultObj.AccessToken;
            }
            else
            {
                MessageBox.Show(result.ToString());
            }
        }
        public async Task <IHttpActionResult> GetAccount(string email, string username, string iban)
        {
            AccountLoginDTO account = new AccountLoginDTO(email, username, iban);

            account.ValidateInputAccount();

            //Invalid account parameters
            if (account.IsInputValid == false)
            {
                return(Ok(account));
            }


            //Valid account parameters
            AccountLoginDTO accountToSearch = await db.Accounts.Select(b =>
                                                                       new AccountLoginDTO()
            {
                Username = b.Username,
                Id       = b.Id,
                Iban     = b.Iban,
                Email    = b.Email,
            }).SingleOrDefaultAsync(b => b.Username == username && b.Email == email && b.Iban == iban);

            //Account not found
            if (accountToSearch == null)
            {
                account.DoesAccountExist = false;
                account.Id       = 0;
                account.Username = null;
                account.Email    = null;
                account.Iban     = null;

                account.ErrorMessages.Add("Account not found !");
            }
            else
            {
                account = accountToSearch;

                account.IsInputValid     = true;
                account.DoesAccountExist = true;
            }


            return(Ok(account));
        }
Пример #12
0
        public bool UserLoginTest()
        {
            AccountLoginDTO dto = new AccountLoginDTO()
            {
                Account = "18965562233", Password = "******"
            };
            ResultMsg <AccountLoginResultDTO> opResult = SDK.UserLogin(dto);

            if (opResult.IsSuccess())
            {
                this.Token = opResult.ResultObj.AccessToken;
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #13
0
        /// <summary>
        /// 控制台程序主入口
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            SDK = new NLECloudAPI(Cfg.API_HOST);

            //帐号登录
            AccountLoginDTO dto = new AccountLoginDTO()
            {
                Account = Cfg.account, Password = Cfg.password
            };
            dynamic qry = SDK.UserLogin(dto);

            if (qry.IsSuccess())
            {
                Token = qry.ResultObj.AccessToken;
            }
            Console.WriteLine(lineNum + "、登录返回JSON:" + Environment.NewLine);
            Console.WriteLine(SerializeToJson(qry) + Environment.NewLine);
            lineNum++;

            if (String.IsNullOrEmpty(Token))
            {
                Console.WriteLine(lineNum + "、登录获取的Token为空,不继续执行其它接口请求,除非成功!" + Environment.NewLine);
                Console.ReadKey();
                return;
            }

            //执行读取传感数据
            new Thread(new ThreadStart(() =>
            {
                while (true)
                {
                    if (Console.ReadKey().Key == ConsoleKey.Enter)
                    {
                        QuerySensorData();
                    }
                    else if (Console.ReadKey().Key == ConsoleKey.End)
                    {
                        CmdActuator();
                    }
                }
            })).Start();

            Console.ReadKey();
        }
Пример #14
0
        public ActionResult Login(AccountLoginDTO dto)
        {
            var result = _accountServcie.Login(dto);

            if (result.IsSuccess == true)
            {
                Response.Cookies.Add(new HttpCookie(CookieNameConfigInfo.CookieName, result.CookieValue)
                {
                    Domain = CookieNameConfigInfo.DomainName, Expires = DateTime.Now.AddHours(1)
                });
                Response.Cookies.Add(new HttpCookie(CookieNameConfigInfo.CacheKeyCookieName, result.CookieValueCacheKey)
                {
                    Domain = CookieNameConfigInfo.DomainName, Expires = DateTime.Now.AddHours(1)
                });
            }

            return(Json(new ExecuteResult(result.IsSuccess, result.Message),
                        JsonRequestBehavior.AllowGet));
        }
Пример #15
0
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            AccountLoginDTO dto = new AccountLoginDTO();

            dto.Account  = "123";  // txtName.Text.Trim();
            dto.Password = "******"; // pasPwd.Password;

            bool isLogin = ForLogin.UserLogin(dto);

            if (isLogin)
            {
                new MainWindow().Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("登录失败", "提示");
            }
        }
Пример #16
0
        private static String actuatorApiTag = "nl_fan";         //发送命令的执行器标识名


        /// <summary>
        /// 控制台程序主入口
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //实例化一个SDK的封装类
            SDK = new NLECloudAPI(API_HOST);

            #region -- 登陆测试 --

            //以下Account与Password修改成自己的
            AccountLoginDTO dto = new AccountLoginDTO()
            {
                Account = account, Password = password
            };
            dynamic qry = SDK.UserLogin(dto);
            if (qry.IsSuccess())
            {
                Token = qry.ResultObj.AccessToken;
            }
            Console.WriteLine("登录返回JSON:" + Environment.NewLine);
            Console.WriteLine(SerializeToJson(qry) + Environment.NewLine);

            if (String.IsNullOrEmpty(Token))
            {
                Console.WriteLine("登录获取的Token为空,不继续执行其它接口请求,除非成功!" + Environment.NewLine);
                Console.ReadKey();
                return;
            }

            #endregion

            Console.WriteLine("请输入 Y 或 N,Y将开始测试调用API,N将关闭窗口?" + Environment.NewLine);
            if (Console.ReadKey().Key.ToString() == "Y")
            {
                Console.WriteLine();

                //开始异步执行各个接口调用
                new Thread(new ThreadStart(() =>
                {
                    ExeccuteApiTestCall();
                    Console.ReadKey();
                })).Start();
            }
        }
Пример #17
0
        /// <summary>
        /// 获取某个网关的信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGatewayInfo_Click(object sender, RoutedEventArgs e)
        {
            if (!DeviceApiReqverify().IsSuccess())
            {
                return;
            }

            String gatewayTag = txtGatewayTag.Text;
            String apiPath    = this.txtGatewayInfoAPI.Text.Replace("{gatewayTag}", gatewayTag);

            NLECloudAPI     SDK      = new NLECloudAPI(API_HOST);
            AccountLoginDTO loginDTO = new AccountLoginDTO();

            loginDTO.Account  = txtUserName.Text.Trim();   //帐号为云平台注册的手机号或用户名等
            loginDTO.Password = txtPasswd.Password.Trim(); //密码为云平台注册的帐号密码
            var qry = SDK.UserLogin(loginDTO);

            var qry1 = SDK.GetGatewayInfo(gatewayTag, txtToken.Text);

            Out(qry, apiPath);
        }
Пример #18
0
        public async Task <ActionResult> Login(AccountLoginDTO model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var account = await _accountservice.Login(model.UserName, model.Password);

                if (account != null)
                {
                    CurrentUser.InstantiateCurrentUser(account);
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #19
0
        public static bool UserLogin(AccountLoginDTO submitData)
        {
            var qry = Sdk.UserLogin(submitData);

            if (!qry.IsSuccess())
            {
                return(false);
            }
            Token = qry.ResultObj.AccessToken;
            return(true);

            /*
             * 如果写成
             *  if (!qry.IsSuccess())
             *  {
             *      Token = qry.ResultObj.AccessToken;
             *      return true;
             *  }
             *  return false;
             *  这种风格Rider会提示
             * Invert 'if' statement to reduce nesting
             * 反转if语句以减少嵌套
             */
        }
Пример #20
0
        public ActionResult Index()
        {
            AccountLoginDTO dto = new AccountLoginDTO();

            return(View(dto));
        }
Пример #21
0
        /// <summary>
        /// 云平台登录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            if (txtUserName.Text.Trim() == "" || this.txtPasswd.Password.Trim() == "")
            {
                MessageBox.Show("请输入登录用户名和密码!");
                return;
            }

            //1、根据该API接口 的请求参数中 得知需要创建个Body Parameters的参数对象,下面创建一个该类的对象
            AccountLoginDTO DTO = new AccountLoginDTO();

            DTO.Account  = txtUserName.Text.Trim();   //帐号为云平台注册的手机号或用户名等
            DTO.Password = txtPasswd.Password.Trim(); //密码为云平台注册的帐号密码

            //3、定义该API接口返回的对象,初始化为空
            ResultMsg <AccountLoginResultDTO> qry = SDK.UserLogin(DTO);

            Out(qry, txtLoginAPI.Text, DTO.DTOToJson());

            //请求成功
            if (qry.IsSuccess())
            {
                txtToken.Text = qry.ResultObj.AccessToken;

                //
                HttpReqEntity req = new HttpReqEntity();
                req.Method = HttpMethod.POST;
                req.Headers.Add("AccessToken", txtToken.Text);

                SensorDataListAddDTO data = new SensorDataListAddDTO()
                {
                    DeviceId = 164,
                };
                var aDatasDTO       = new List <SensorDataAddDTO>();
                SensorDataAddDTO bb = new SensorDataAddDTO()
                {
                    Tag = "nl_displacement"
                };
                aDatasDTO.Add(bb);
                List <SensorDataPointDTO> cc = new List <SensorDataPointDTO>();
                cc.Add(new SensorDataPointDTO()
                {
                    Value = 23123123
                });
                cc.Add(new SensorDataPointDTO()
                {
                    Value = 2222
                });
                bb.PointDTO = cc;

                bb = new SensorDataAddDTO()
                {
                    Tag = "nl_thermocouple"
                };
                aDatasDTO.Add(bb);
                cc = new List <SensorDataPointDTO>();
                cc.Add(new SensorDataPointDTO()
                {
                    Value = true
                });
                cc.Add(new SensorDataPointDTO()
                {
                    Value = false
                });
                bb.PointDTO = cc;

                data.DatasDTO = aDatasDTO;

                req.Datas = JsonFormatter.Serialize(data);
                var a = RequestAPIHelper.RequestServer <HttpReqEntity>("http://api0.nlecloud.com/v2/devices/164/Datas", req);

                string sdf = a.Msg;
            }
        }