public async Task <LoginResponse> postRegister(string email, string username, string password) { var formContent = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", email), new KeyValuePair <string, string>("username", username), new KeyValuePair <string, string>("password", password) }); HttpResponseMessage result = await post("/user/register", formContent); string content = await result.Content.ReadAsStringAsync(); if (result.IsSuccessStatusCode) { LoginReturn returnData = JsonConvert.DeserializeObject <LoginReturn>(content); Console.WriteLine(returnData.message + " " + returnData.data.authCode); Preferences.Set(SharedPreferences.AUTH_CODE, returnData.data.authCode); Preferences.Set(SharedPreferences.ADMIN_TYPE, returnData.data.authCode); return(returnData); } else { LoginErrorResponse returnData = JsonConvert.DeserializeObject <LoginErrorResponse>(content); Console.WriteLine(returnData.message + " " + returnData.statusCode); return(returnData); } }
public IHttpActionResult Authenticate(LoginRequest login) { var user = db.Users.FirstOrDefault(x => x.Name == login.Username && x.Password == login.Password); if (user == null) { return(Ok(new { message = "Usuario o contrasena incorrectos." })); } //TODO: Validate credentials Correctly, this code is only for demo !! if (user != null) { var token = TokenGenerator.GenerateTokenJwt(login.Username); LoginReturn loginReturn = new LoginReturn(); loginReturn.IdUser = user.UserId; loginReturn.Token = token; return(Ok(loginReturn)); } else { return(Unauthorized()); } }
public IHttpActionResult Login(RestoAdminLoginModel LoginModel) { LoginReturn xReturn = new LoginReturn(); if (LoginModel != null) { if (LoginModel.Username == "Admin" && LoginModel.Password == "Admin") { xReturn.username = LoginModel.Username; xReturn.password = LoginModel.Password; xReturn.ipAddress = LoginModel.IpAddress; xReturn.returnValue = "Login Ok"; } else { xReturn.returnValue = "Login Fail"; } } else { xReturn.returnValue = "Login Fail"; } return(Ok(new { xReturn })); }
public string current(UserCredentials Credentials) { Database db = new Database(); LoginReturn success = new LoginReturn(); success = db.getHashedPassword(Credentials); //success = UsersDB.spGetHashedPassword(Credentials.Username); /* Extract the bytes */ var test = success.Password; byte[] hashBytes = Convert.FromBase64String(success.Password); /* Get the salt */ byte[] salt = new byte[16]; Array.Copy(hashBytes, 0, salt, 0, 16); /* Compute the hash on the password the user entered */ var pbkdf2 = new Rfc2898DeriveBytes(Credentials.Password, salt, 10000); byte[] hash = pbkdf2.GetBytes(20); /* Compare the results */ for (int i = 0; i < 20; i++) { if (hashBytes[i + 16] != hash[i]) { throw new UnauthorizedAccessException(); } } return("Password"); }
public LoginReturn Login(string LoginName, string UserPwd, int DeviceType) { base.SetHeader(); LoginReturn re = new LoginReturn(); re.Result = true; try { string errorMsg = ""; COUserIdentity iden = COOrgans.Instance().Login(LoginName, UserPwd, CPEnum.ConvertDeviceTypeEnum(DeviceType), ref errorMsg); if (string.IsNullOrEmpty(errorMsg) == false) { re.Result = false; re.ErrorMsg = errorMsg; return(re); } re.UserId = iden.UserId; re.UserKey = iden.UserKey; return(re); } catch (Exception ex) { re.Result = false; re.ErrorMsg = ex.Message.ToString(); return(re); } }
public async Task <IActionResult> Login(LoginVM user) { if (ModelState.IsValid) { var userInfo = await _userManager.FindByNameAsync(user.UserName); var result = await _signInManager.CheckPasswordSignInAsync(userInfo, user.Password, false); //var result = await _signInManager.PasswordSignInAsync(user.UserName, user.Password, false, false); if (result.Succeeded) { LoginReturn theReturn = new LoginReturn { tokenString = BuildToken(user), user = user.UserName }; return(Ok(Newtonsoft.Json.JsonConvert.SerializeObject(theReturn))); } else { ModelState.AddModelError(string.Empty, "Invalid login attempt."); } } return(BadRequest(ModelState)); }
public async Task <IActionResult> Login(String ticket) { ViewData["username"] = null; HttpContext.Request.Cookies.TryGetValue("Login", out String loginUser); if (loginUser != null) { ViewData["username"] = loginUser; return(View()); } else if (!String.IsNullOrEmpty(ticket)) { HttpClient httpClient = new HttpClient(); String url = "http://localhost:5000/Api/LoginVerification?ticket=" + ticket + "&appkey=abcd"; var response = httpClient.GetAsync(url).Result; var resStr = await response.Content.ReadAsStringAsync(); LoginReturn ret = JsonConvert.DeserializeObject <LoginReturn>(resStr); HttpContext.Response.Cookies.Append("Login", ret.Username, new CookieOptions { Expires = DateTime.Now.AddMinutes(30) }); ViewData["username"] = ret.Username; } else { return(Redirect("http://localhost:5000/Account?appkey=abcd")); } return(View()); }
public ContentResult getVoucher() { try { if (Request.Cookies["gm_userinfo"] != null) { string Account = Request.Cookies["gm_userinfo"].Values["Account"].ToString(); string guid = Request.Cookies["gm_userinfo"].Values["guid"].ToString(); VoucherModels pVoucherModels = new VoucherModels(); LoginReturn pLoginReturn = new LoginReturn(); if (pVoucherModels.Verification(Account, guid, out pLoginReturn)) { //session 赋值 Session["id"] = pLoginReturn.ID; Session["name"] = pLoginReturn.Name; Session["rid"] = pLoginReturn.Role_ID; Session["Type"] = pLoginReturn.Type; Session["DataRole"] = pLoginReturn.DataRole; Session["guid"] = guid; Session["Account"] = Account; string xinfo = pLoginReturn.Type == "1" ? " 老师" : (pLoginReturn.Type == "2" ? " 学生" : (pLoginReturn.Type == "3" ? " 企业" : "")); return(Content("[{\"Login\":\"True\",\"Type\":\"" + pLoginReturn.Type + "\",\"STR\":\"" + Session["name"] + xinfo + "\"}]")); } return(Content("out")); } return(Content("no")); } catch (Exception ex) { ResSharingPlatform.Common.clsLog.ErrorLog("Voucher", "getVoucher", ex.Message); return(Content("err")); } }
/// <summary> /// 处理用户登录的一些列操作,登陆不成功返回null,成功则返回一个LoginReturn /// </summary> /// <param name="msg"></param> /// <returns></returns> private static LoginReturn UserLogin(LoginData msg, byte[] login_ip) { //业务逻辑: //第一步,检测是否满足登陆条件,如果已经上线呵呵NULL,满足则进入第二步,否则返回NULL //第二步,将自己加入在线列表,并将自己在线的消息通知给在线好友 //第三步获取对登陆者来说要进行更新的好友列表并返回LoginReturn if (isdebug) { Console.WriteLine("{0}--{1}", msg.username, msg.password); } LoginReturn info_return = new LoginReturn(); User temp_user = new User(); int login_id = SqlManager.checkUser(msg.username, msg.password, ref temp_user); if (login_id != -1)//是否满足登陆条件 { if (isOnline(login_id)) { if (isdebug) { Console.WriteLine("已登录{0}", login_id); } return(null); } if (isdebug) { Console.WriteLine("登录验证成功,用户id是{0}", login_id); } try { //登记在线 //Idonline_Dic.Add(login_id,init_Vitality); OnlineUserManager.addOnlineUser(new OnlineUser(login_id, login_ip, temp_user.name, temp_user.nickname)); //记录ip // Ip_Dic.Add(login_id,login_ip); //获取在线好友列表(用于返回给该用户),通知在线好友该用户在线了 info_return.OnlineFriends = getOnlineFriends(login_id); //获取该用户的消息,一个用户刚刚上线,应该从数据库获取才对 info_return.message = OnlineUserManager.user_list[login_id].getUserMessageList(); info_return.FriendsTimeStamp = SqlManager.getFriendsTimestamp(login_id); info_return.GroupTimeStamp = SqlManager.getGroupTimeStamp(login_id); info_return.myTimeStamp = SqlManager.getUserTimestamp(login_id); } catch (Exception e) { Console.WriteLine("构建返回值时出现问题,{0}", e.Message); } } else { if (isdebug) { Console.WriteLine("if({0}<0) then 密码搞错了 else 已经登录过了", login_id); } info_return = null; } return(info_return); }
public void Login(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string EMP_NO = Data["EMP_NO"].ToString(); string PWD = Data["Password"].ToString(); string BU_NAME = Data["BU_NAME"].ToString(); DataSet res = new DataSet(); Language = Data["Language"].ToString(); MESReturnMessage.Language = Language; LoginReturn lr = new LoginReturn(); MESDBHelper.OleExec SFCDB = _DBPools["SFCDB"].Borrow(); MESDataObject.Module.T_c_user GetLoginUser = new MESDataObject.Module.T_c_user(SFCDB, this.DBTYPE); MESDataObject.Module.Row_c_user rcu = (Row_c_user)GetLoginUser.NewRow(); rcu = GetLoginUser.getC_Userbyempno(EMP_NO, SFCDB, this.DBTYPE); if (rcu == null) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000010"; _DBPools["SFCDB"].Return(SFCDB); return; } c_user_info user_info = new c_user_info(); user_info = GetLoginUser.GetLoginUser(EMP_NO, SFCDB); LogicObject.User lu = new LogicObject.User(); if (PWD == rcu.EMP_PASSWORD) { lu.ID = user_info.ID; lu.FACTORY = user_info.FACTORY; lu.BU = user_info.BU_NAME; lu.EMP_NO = user_info.EMP_NO; lu.EMP_LEVEL = user_info.EMP_LEVEL; lu.DPT_NAME = user_info.DPT_NAME; string token1 = DateTime.Now.ToString("yyyyMMddHHmmss"); string token2 = rand.Next(100, 999).ToString(); char[] TokenChars = (token1 + token2).ToArray(); byte[] TokenBytes = Encoding.Default.GetBytes(TokenChars); string TokenBas64 = Convert.ToBase64String(TokenBytes); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000009"; LoginUser = lu; //lr = new LoginReturn() { Token = TokenBas64, User_ID = user.EMP_NO}; lr = new LoginReturn() { Token = TokenBas64, User_ID = LoginUser.EMP_NO, UserInfo = user_info }; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000010"; } StationReturn.Data = lr; _DBPools["SFCDB"].Return(SFCDB); }
public IEnumerable <UserBoughtProductsData> GetPaidShares(LoginReturn userInfo) { Database db = new Database(); SqlConnection myConnection = new SqlConnection(); myConnection = db.connect(); IEnumerable <UserBoughtProductsData> PaidSharesList = myConnection.Query <UserBoughtProductsData>("spGetPaidShares", new { UserID = userInfo.UserID }, commandType: CommandType.StoredProcedure); return(PaidSharesList); }
/// <summary> /// Parametered Constuctor /// </summary> /// <param name="success">Specifies whether the attempt successful was ok or not</param> /// <param name="extraMessage">Describes the the error message or additional info from the request response</param> /// <param name="returnCode">An enum for further descbing the _success </param> /// <param name="userToken">Token returned based on userId and authentication and security parameters</param> /// <param name="userFullName">Full name returned based on userId and authentication and security parameters</param> public AuthResult(bool success, string extraMessage, LoginReturn returnCode, string userToken, string userFullName) { _success = success; _extraMessage = extraMessage; _returnCode = returnCode; _userToken = userToken; _userFullName = userFullName; }
public LoginReturn ValidateLogin(int id, LoginContract loginContract) { var emp = context.Employee.Include(e => e.Designation).FirstOrDefault(e => e.Username == loginContract.Username && e.Password == loginContract.Password && e.MerchantId == id); LoginReturn loginReturn = new LoginReturn(); if (emp != null) { loginReturn.designation = emp.Designation.Name; } return(loginReturn); }
public void ShouldGetUserByName() { var username = "******"; MpUser mpUser = new MpUser() { CanImpersonate = true, DisplayName = "Testy McTestface", Guid = "123123123123123", UserEmail = "*****@*****.**", UserId = "test", UserRecordId = 1 }; MpMyContact mpMyContact = new MpMyContact() { Contact_ID = 2, First_Name = "Testy", Email_Address = mpUser.UserEmail, Age = 30, Mobile_Phone = "1234567890" }; List <MpRoleDto> roles = new List <MpRoleDto>(); LoginReturn dto = new LoginReturn() { userToken = _authType + " " + _authToken, userTokenExp = "", refreshToken = "", userId = mpMyContact.Contact_ID, username = mpMyContact.First_Name, userEmail = mpMyContact.Email_Address, roles = roles, age = mpMyContact.Age, userPhone = mpMyContact.Mobile_Phone, canImpersonate = mpUser.CanImpersonate }; _userRepository.Setup(mocked => mocked.GetUserIdByUsername(username)).Returns(mpUser.UserRecordId); _userRepository.Setup(mocked => mocked.GetUserByRecordId(mpUser.UserRecordId)).Returns(mpUser); _userRepository.Setup(mocked => mocked.GetUserRoles(mpUser.UserRecordId)).Returns(roles); _contactRepository.Setup(mocked => mocked.GetContactByUserRecordId(mpUser.UserRecordId)).Returns(mpMyContact); var response = _fixture.Get(username); _userRepository.VerifyAll(); _contactRepository.VerifyAll(); Assert.IsNotNull(response); Assert.IsInstanceOf <OkNegotiatedContentResult <LoginReturn> >(response); var r = (OkNegotiatedContentResult <LoginReturn>)response; Assert.IsNotNull(r.Content); Assert.AreEqual(JsonConvert.SerializeObject(dto), JsonConvert.SerializeObject(r.Content)); }
private void Analytics_Click(object sender, EventArgs e) { LoginReturn login = CheckLoginInDnevnik(); bool closedSuccess = login.closedSuccess; string keyAccess = login.keyAccess; if (closedSuccess) { //Analytics analytics = new Analytics(new ApiDiary((keyAccess == "" ? Properties.Settings.Default.keyAccess : keyAccess))); //analytics.test(1556261691152418797); } }
public IEnumerable <Charge> GetCharges(LoginReturn userInfo) { Database db = new Database(); SqlConnection myConnection = new SqlConnection(); myConnection = db.connect(); //Charge charges = new Charge(); IEnumerable <Charge> charges = myConnection.Query <Charge>("spGetCharges", new { UserID = userInfo.UserID }, commandType: CommandType.StoredProcedure); return(charges); }
public IEnumerable <UserBoughtProductsData> GetUserBoughtProducts(LoginReturn userInfo) { Database db = new Database(); SqlConnection myConnection = new SqlConnection(); myConnection = db.connect(); UserBoughtProductsData UserBought = new UserBoughtProductsData(); IEnumerable <UserBoughtProductsData> UserBoughtvar = myConnection.Query <UserBoughtProductsData>("spGetUserBoughtProducts", new { UserID = userInfo.UserID }, commandType: CommandType.StoredProcedure); return(UserBoughtvar); }
public object UpdatePersonalDetails(JsonMember.UserDetails obj) { LoginReturn Lobj = new LoginReturn(); try { Sqldbmanager.Open(); Sqldbmanager.CreateParameters(5); Sqldbmanager.AddParameters(0, "@UserId", obj.UserId); Sqldbmanager.AddParameters(1, "@FirstName", obj.FirstName.Trim()); Sqldbmanager.AddParameters(2, "@LastName", obj.LastName.Trim()); Sqldbmanager.AddParameters(3, "@EmailId", obj.EmailId.Trim()); Sqldbmanager.AddParameters(4, "@ProfilePicPath", obj.ProfilePicPath); DS = Sqldbmanager.ExecuteDataSet(CommandType.StoredProcedure, "USP_UpdateuserProfile"); Lobj = new LoginReturn() { flag = DS.Tables[0].Rows[0]["flag"].ToString(), Message = DS.Tables[0].Rows[0]["Message"].ToString(), EmailId = DS.Tables[0].Rows[0]["EmailId"].ToString(), MobileNo = DS.Tables[0].Rows[0]["MobileNo"].ToString(), Name = DS.Tables[0].Rows[0]["Name"].ToString(), UserName = DS.Tables[0].Rows[0]["UserName"].ToString(), UserId = DS.Tables[0].Rows[0]["UserId"].ToString(), FirstName = DS.Tables[0].Rows[0]["FirstName"].ToString(), LastName = DS.Tables[0].Rows[0]["LastName"].ToString(), ProfilePicPath = DS.Tables[0].Rows[0]["ProfilePicPath"].ToString() }; } catch (Exception Ex) { DS = LogError("Update Personal Detail", Ex.Message.ToString(), "SP Name: USP_UpdateuserProfile"); Lobj = new LoginReturn() { flag = "false", Message = DS.Tables[0].Rows[0]["Meaasge"].ToString(), EmailId = "", MobileNo = "", Name = "", UserId = "", FirstName = "", LastName = "", ProfilePicPath = "", }; } finally { Sqldbmanager.Close(); } return(Lobj); }
public LoginReturn getHashedPassword(UserCredentials Credentials) { Database db = new Database(); SqlConnection myConnection = new SqlConnection(); myConnection = db.connect(); LoginReturn success = new LoginReturn(); success = myConnection.Query <LoginReturn>("spGetHashedPassword", new { Email = Credentials.Username }, commandType: CommandType.StoredProcedure).SingleOrDefault(); return(success); }
private async void Login(object sender, EventArgs e) { if (string.IsNullOrEmpty(Username.Text) || string.IsNullOrEmpty(Password.Text)) { await UserDialogs.Instance.AlertAsync("Please fill out all fields"); } else { if (CrossConnectivity.Current.IsConnected) { try { this.InputTransparent = true; UserDialogs.Instance.ShowLoading("Logging In", MaskType.None); var model = new LoginModel { Username = Username.Text, Password = Password.Text }; var loginService = new Authenticate(); Response response = await loginService.Login(model); if (!response.IsSuccessStatusCode) { this.InputTransparent = false; await UserDialogs.Instance.AlertAsync("Incorrect username or password"); UserDialogs.Instance.HideLoading(); } else { this.InputTransparent = false; LoginReturn ret = JsonConvert.DeserializeObject <LoginReturn>(response.Content); Application.Current.Properties["Id"] = ret.Id; Application.Current.MainPage = new NavigationPage(new HomePage()); UserDialogs.Instance.HideLoading(); } } catch (Exception ee) { this.InputTransparent = false; UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("There was an error executing your request"); } } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("You are not connected to the internet"); } } }
/// <summary> /// 登录 /// 发送格式:UserMessage(2, LoginData(username, password)) /// 接收格式:LoginReturn,要求LoginReturn各成员变量不为null /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static LoginReturn Login(string username, string password) { LoginData ld = new LoginData(username, password); lock (_l) { if (client.Connect()) { LoginReturn result = client.Sending(new UserMessage(2, ld)) as LoginReturn; client.Close(); return(result); } } return(null); }
public LoginReturn login(UserContext context, LoginInfo info) { LoginReturn user = new LoginReturn(); foreach (Usuario u in context.Get()) { if (u.Contrasena == info.contrasena && u.NombreUsuario == info.nombreU) { user.id = u.Id; user.tipoU = u.TipoU; break; } } return(user); }
public async Task <LoginResponse> getLoginWithAuth(string authCode) { HttpResponseMessage result = await get("/user/loginWithAuth", new Dictionary <string, string> { { "authCode", authCode } }); if (result.IsSuccessStatusCode) { string content = await result.Content.ReadAsStringAsync(); LoginReturn returnData = JsonConvert.DeserializeObject <LoginReturn>(content); Console.WriteLine(returnData.message + " " + returnData.data.adminType); Preferences.Set(SharedPreferences.ADMIN_TYPE, returnData.data.adminType); return(returnData); } return(null); }
public async Task <ActionResult <LoginReturn> > PostLogin(UserQuery uq) { var reqData = await _context.Users .Where(s => s.UserName == uq.uname) .FirstOrDefaultAsync(); var rd = new LoginReturn(); if (reqData == null) { rd.password = ""; } else { rd.password = reqData.Password; rd.id = reqData.UserId; } return(rd); }
/// <summary> /// 查詢權限對應的ID /// </summary> public void SelectPrivilegeID(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { LoginReturn lr = new LoginReturn(); MESDBHelper.OleExec SFCDB = _DBPools["SFCDB"].Borrow(); MESDataObject.Module.T_C_PRIVILEGE RolerPrivilege = new MESDataObject.Module.T_C_PRIVILEGE(SFCDB, DB_TYPE_ENUM.Oracle); MESDataObject.Module.Row_C_PRIVILEGE RolerPrivilegeRow = (MESDataObject.Module.Row_C_PRIVILEGE)RolerPrivilege.NewRow(); DataTable TablePrivilege = new DataTable(); TablePrivilege = RolerPrivilege.SelectPrivilegeID(SFCDB, DB_TYPE_ENUM.Oracle); List <Privilegesid> Privilegesid = new List <Privilegesid>(); if (TablePrivilege.Rows.Count > 0) { foreach (DataRow item in TablePrivilege.Rows) { List <string> menu = new List <string>(); Privilegesid.Add(new Privilegesid { PRIVILEGE_ID = item["PRIVILEGE_ID"].ToString(), PRIVILEGE_NAME = item["PRIVILEGE_NAME"].ToString(), PRIVILEGE_DESC = item["PRIVILEGE_DESC"].ToString() }); } } else { Privilegesid.Add(null); } StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "獲取權限目錄OK"; StationReturn.Data = Privilegesid; this.DBPools["SFCDB"].Return(SFCDB); }
public async Task <IActionResult> Login() { // Create session SessionData session = new SessionData { uid = Convert.ToInt32(User.FindFirst("uid").Value), created = DateTime.UtcNow.ToString(), expires = DateTime.UtcNow.AddMinutes(20) }; await dbContext.Sessions.AddAsync(session); await dbContext.SaveChangesAsync(); // Create token Claim[] claims = new[] { new Claim("sid", session.sid.ToString()), new Claim("created", session.created) }; SymmetricSecurityKey key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("secretsecretsupersecret")); SigningCredentials credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); JwtSecurityToken token = new JwtSecurityToken( issuer: "http://localhost:50576/", audience: "http://localhost:50576/", claims: claims, expires: session.expires, signingCredentials: credentials ); LoginReturn ret = new LoginReturn { session_token = new JwtSecurityTokenHandler().WriteToken(token) }; return(Ok(ret)); }
public async Task <IActionResult> GetToken(LoginModel model) { if (!ModelState.IsValid) { return(Unauthorized()); } ApplicationUser user = await Authenticate(model); if (user == null) { return(Unauthorized()); } IList <string> role = await userManager.GetRolesAsync(user); var symmetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); var signInCredentials = new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha256Signature); var token = new JwtSecurityToken( issuer: "workly.api", audience: "allRoles", expires: DateTime.Now.AddDays(1), signingCredentials: signInCredentials ); //new JwtSecurityTokenHandler().WriteToken(token); LoginReturn loginReturn = new LoginReturn { Token = new JwtSecurityTokenHandler().WriteToken(token).ToString(), Role = role.FirstOrDefault() }; return(Ok(loginReturn)); }
//-------------------------------------------------------------// // Convert from XML methods //-------------------------------------------------------------// public LoginReturn convertRecvToInfo(byte[] data, LoginReturn readInfo) { //decode binary data into readable string and passinto a string reader needed for XML Deserialzing string result = System.Text.Encoding.UTF8.GetString(data); StringReader stringReader = new StringReader(result); //create xml reader //XmlReaderSettings settings = new XmlReaderSettings(); //Currently settings unsued, was needed before, leaving for refferrence (stringReader, settings) XmlReader xmlReader = XmlReader.Create(stringReader); //create xmlSerializer linked to type of class Info and deserialze string XmlSerializer xmlSerializer = new XmlSerializer(typeof(LoginReturn)); readInfo = (LoginReturn)xmlSerializer.Deserialize(xmlReader); print (readInfo); print (readInfo.loggedIn); return readInfo; }
//-------------------------------------------------------------// // Read Message Methods //-------------------------------------------------------------// public void readSocket() { if (!socketReady && dataStream.DataAvailable) return; // read in message type and size of message int bytesNeeded = 4; byte[] messageType = new byte[bytesNeeded]; byte[] lengthBuffer = new byte[bytesNeeded]; messageType = reader.ReadBytes(bytesNeeded); lengthBuffer = reader.ReadBytes(bytesNeeded); //convert bytes to littleEndian if needed if(BitConverter.IsLittleEndian) { Array.Reverse(messageType); Array.Reverse(lengthBuffer); } // convert bytes to int int type = BitConverter.ToInt32(messageType, 0); if(type == 1){ LoginReturn readInfo = new LoginReturn(); //should only be false if stream was closed before finished reading as bytereader is blocking if(lengthBuffer.Length == bytesNeeded) { int dataSize = BitConverter.ToInt32(lengthBuffer, 0); print(dataSize); byte[] data = new byte[dataSize]; bytesNeeded = dataSize; data = reader.ReadBytes(dataSize); //convert data into usable class if(data.Length == bytesNeeded) { readInfo = this.convertRecvToInfo(data, readInfo); } } if (readInfo.loggedIn == true) { Debug.Log("login success"); this.displayText("Logged in!", true); maxTextTimer = 1f; closeToMenu = true; } else if (readInfo.loggedIn == false) { this.displayText("Unable to log in\nEmail or Password incorrect.", false); Debug.Log("unable to log in"); } this.attemptRead = false; } else if(type == 2){ //Sign up successful LoginReturn readInfo = new LoginReturn(); //should only be false if stream was closed before finished reading as bytereader is blocking if(lengthBuffer.Length == bytesNeeded) { int dataSize = BitConverter.ToInt32(lengthBuffer, 0); print(dataSize); byte[] data = new byte[dataSize]; bytesNeeded = dataSize; data = reader.ReadBytes(dataSize); //convert data into usable class if(data.Length == bytesNeeded) { readInfo = this.convertRecvToInfo(data, readInfo); } } if (readInfo.loggedIn) { Debug.Log("sign up success"); this.SwitchSignUp(false); this.displayText("Sign up successful.\n Logging in", false); this.sendLogin(1); } else if(!readInfo.loggedIn) { Debug.Log("unable to sign up"); this.displayText("Unable to sign up\nEmail already exists", false); this.attemptRead = false; } } return; }
protected override void OnMessage(MessageEventArgs e) { MESStationReturn StationReturn = null; // new MESStationReturn(); string[] Para = null; //add by LLF 2017-1-4 try { //處理JSON //Newtonsoft.Json.Linq.JObject Request = (Newtonsoft.Json.Linq.JObject) Newtonsoft.Json.JsonConvert.DeserializeObject( //"{ TOKEN:null, CLASS: \"MESStation.ApiHelper\", FUNCTION:\"GetApiClassList\", DATA:{ } }"); //Request = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject("{ TOKEN:null, CLASS: \"MESStation.ApiHelper\", FUNCTION:\"GetApiFunctionsList\", DATA:{ CLASSNAME:\"MESStation.ApiHelper\" } }"); //Request = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject( // "{ TOKEN:null, CLASS: \"MESStation.ApiHelper\", FUNCTION:\"GetApiFunctionsList\", DATA:{ CLASSNAME:\"MESStation.UserManager\" } }"); Newtonsoft.Json.Linq.JObject Request = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(e.Data); string CLASS = Request["Class"].ToString(); string FUNCTION = Request["Function"].ToString(); string TOKEN = Request["Token"].ToString(); string MsgID = Request["MessageID"]?.ToString(); string ClientID = Request["ClientID"]?.ToString(); Request.Add("IP", Newtonsoft.Json.Linq.JToken.Parse("{Value:\"" + this.ClientIP + "\"}")); StationReturn = new MESStationReturn(MsgID, ClientID); //反射加載 //ApiHelper api = new ApiHelper(); Type APIType; //加載類庫 Assembly assembly = Assembly.Load("MESStation"); APIType = assembly.GetType(CLASS); object API_CLASS = assembly.CreateInstance(CLASS); MesAPIBase API = (MesAPIBase)API_CLASS; if (!API.DBPools.ContainsKey("SFCDB")) { API.DBPools.Add("SFCDB", SFCDBPool); } if (!API.DBPools.ContainsKey("APDB")) { API.DBPools.Add("APDB", APDBPool); } //API.BU = "HWD"; //API.BU = "VERTIV"; ((MesAPIBase)API_CLASS).IP = this.ClientIP; API.Language = "CHINESE"; //CHINESE,CHINESE_TW,ENGLISH; //初始化異常類型的數據庫連接池 MESReturnMessage.SetSFCDBPool(SFCDBPool); //獲取調用函數 MethodInfo Function = APIType.GetMethod(FUNCTION); // bool CheckLogin = false; if (LoginUsers.ContainsKey(TOKEN)) { User lu = LoginUsers[TOKEN]; ((MesAPIBase)API_CLASS).LoginUser = lu; CheckLogin = true; API.BU = lu.BU; } else { if (FUNCTION != "Login" && ((MesAPIBase)API_CLASS).MastLogin) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "No Login !"; } else { if (FUNCTION == "Login") { CheckLogin = true; } } } if (CheckLogin) { Function.Invoke(API_CLASS, new object[] { Request, Request["Data"], StationReturn }); if (FUNCTION == "Login") { if (StationReturn.Status == "Pass") { LoginReturn r = (LoginReturn)StationReturn.Data; User lu = ((MesAPIBase)API_CLASS).LoginUser; if (this.Token != null) { Report.LoginUsers.Remove(Token); MESStation.Stations.CallStation.logout(Token); } string NewToken = r.Token; Token = r.Token; if (LoginUsers.ContainsKey(NewToken)) { LoginUsers[NewToken] = lu; } else { LoginUsers.Add(NewToken, lu); } } } }//函數不要求登錄 else if (!((MesAPIBase)API_CLASS).MastLogin) { Function.Invoke(API_CLASS, new object[] { Request, Request["Data"], StationReturn }); if (FUNCTION == "Login") { if (StationReturn.Status == "Pass") { LoginReturn r = (LoginReturn)StationReturn.Data; User lu = ((MesAPIBase)API_CLASS).LoginUser; string NewToken = r.Token; if (LoginUsers.ContainsKey(NewToken)) { LoginUsers[NewToken] = lu; } else { LoginUsers.Add(NewToken, lu); } } } } //add by LLF 2017-12-27 if (StationReturn.MessageCode != null) { if (StationReturn.MessageCode.Length > 0) { if (StationReturn.MessagePara != null) { if (StationReturn.MessagePara.Count > 0) { Para = new string[StationReturn.MessagePara.Count]; for (int i = 0; i < StationReturn.MessagePara.Count; i++) { Para[i] = StationReturn.MessagePara[i].ToString(); } } } StationReturn.Message = MESReturnMessage.GetMESReturnMessage(StationReturn.MessageCode, Para); } } } catch (MESReturnMessage ee) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = ee.Message; if (ee.InnerException != null) { StationReturn.Data = ee.InnerException.Message; } } catch (Exception ee) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = ee.Message; if (ee.InnerException != null) { StationReturn.Data = ee.InnerException.Message; } } System.Web.Script.Serialization.JavaScriptSerializer JsonMaker = new System.Web.Script.Serialization.JavaScriptSerializer(); JsonMaker.MaxJsonLength = int.MaxValue; string json = JsonMaker.Serialize(StationReturn); //JavaScriptSerializer 實例在序列化對象的時候,遇到 DateTime 類型會序列化出不可讀的數據, //因此改用 Newtonsoft 的 JsonConvert 來進行序列化,序列化出來的 DateTime 形如 2017-12-06T11:14:37 //另外如果遇到無法將 System.DBNull 類型轉換成 string 類型的,可以手動檢測下值的類型, //如果是 System.DBNull,直接將值改為 null 即可。 //實在無法實現你所需要的功能,可將下面這句註釋掉。 // // modify by 張官軍 2017/12/06 //變更時間格式 modify by Wuq 2018/01/25 json = Newtonsoft.Json.JsonConvert.SerializeObject(StationReturn, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }); //json = Newtonsoft.Json.JsonConvert.SerializeObject(StationReturn); Send(json); }
public async Task <LoginReturn> FacebookLoginHub([FromBody] FacebookLoginModel model) { LoginReturn ret = new LoginReturn(); if (!ModelState.IsValid) { ret.errors.Add("ModelState Error"); ret.success = false; //return BadRequest(ModelState); return(ret); } var user = await UserManager.FindByNameAsync(model.FacebookId); if (user == null) { RegisterFacebookModel m = new RegisterFacebookModel(); m.FacebookAccessToken = model.FacebookAccessToken; var reg = await RegisterWithFacebook(m); if (reg.success == false) { ret.success = false; ret.errors = reg.errors; return(ret); } user = await UserManager.FindByNameAsync(model.FacebookId); await ChatModel.CreateSessionWithUser(); await ChatModel.SignUpForChat(user); // await ChatModel.SignUpForChat(user); } ///Must be registered by now ///Refresh Tokena if (!await UserManager.CheckPasswordAsync(user, model.FacebookAccessToken)) { RegisterFacebookModel m = new RegisterFacebookModel(); m.FacebookAccessToken = model.FacebookAccessToken; var reg = await ChangeFacebookAccessToken(m); if (reg.success == false) { ret.success = false; ret.errors = reg.errors; return(ret); } } return(ret); }
/// <summary> /// 登錄API /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void Login(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string User_Name = Data["User_Name"].ToString();/// EMP_NAME IS EMP_NO string PWD = Data["Password"].ToString(); DataSet res = new DataSet(); Language = Data["Language"].ToString(); MESReturnMessage.Language = Language; LoginReturn lr = new LoginReturn(); MESDBHelper.OleExec SFCDB = _DBPools["SFCDB"].Borrow(); MESDataObject.Module.T_c_user GetLoginInformation = new MESDataObject.Module.T_c_user(SFCDB, this.DBTYPE); // string strSql = $@" select * from C_USER where EMP_NO='{User_Name}' and EMP_PASSWORD='******' "; //MESDataObject.Module.Row_c_user user = GetPassword.getC_Userbyempno("TEST",SFCDB,this.DBTYPE); DataTable dt = GetLoginInformation.SelectC_Userbyempno(User_Name, SFCDB, this.DBTYPE); List <c_user_model> lsit = new List <c_user_model>(); if (dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { lsit.Add(new c_user_model { ID = item["ID"].ToString(), FACTORY = item["FACTORY"].ToString(), BU_NAME = item["BU_NAME"].ToString(), EMP_NO = item["EMP_NO"].ToString(), EMP_NAME = item["EMP_NAME"].ToString(), EMP_PASSWORD = item["EMP_PASSWORD"].ToString(), EMP_LEVEL = item["EMP_LEVEL"].ToString(), DPT_NAME = item["DPT_NAME"].ToString(), POSITION_NAME = item["POSITION_NAME"].ToString(), MAIL_ADDRESS = item["MAIL_ADDRESS"].ToString(), PHONE_NUMBER = item["PHONE_NUMBER"].ToString(), LOCATION = item["LOCATION"].ToString(), LOCK_FLAG = item["LOCK_FLAG"].ToString(), AGENT_EMP_NO = item["AGENT_EMP_NO"].ToString(), EMP_DESC = item["EMP_DESC"].ToString(), EDIT_EMP = item["EDIT_EMP"].ToString(), EMP_EN_NAME = item["EMP_EN_NAME"].ToString() } ); } } LogicObject.User lu = new LogicObject.User(); //if (user.EMP_PASSWORD == user.EMP_PASSWORD) if (true) { string token1 = DateTime.Now.ToString("yyyyMMddHHmmss"); string token2 = rand.Next(100, 999).ToString(); char[] TokenChars = (token1 + token2).ToArray(); byte[] TokenBytes = Encoding.Default.GetBytes(TokenChars); string TokenBas64 = Convert.ToBase64String(TokenBytes); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "登錄成功"; LoginUser = lu; //lr = new LoginReturn() { Token = TokenBas64, User_ID = user.EMP_NO}; lr = new LoginReturn() { Token = TokenBas64, User_ID = LoginUser.EMP_NO }; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "登錄失敗!密碼錯誤或用戶名不存在!!"; } StationReturn.Data = lr; _DBPools["SFCDB"].Return(SFCDB); }