public LoginOK sp_loginSocial(int socialType, string socialID, string nick, string picurl, string email) { LoginOK resultValue = new LoginOK(); int spError = -1; List <DBREQ_PARAM> dbParams = new List <DBREQ_PARAM>(); dbParams.Add(new DBREQ_PARAM("_socialType", DbType.Int32, socialType)); dbParams.Add(new DBREQ_PARAM("_socialID", DbType.String, socialID)); dbParams.Add(new DBREQ_PARAM("_nick", DbType.String, nick)); dbParams.Add(new DBREQ_PARAM("_picurl", DbType.String, picurl)); dbParams.Add(new DBREQ_PARAM("_email", DbType.String, email)); DataTable result = RunSP("sp_loginSocial", CreateDB(), dbParams); spError = result.Rows[0].Field <int>("Result"); if (spError == 0) { resultValue.statusCode = 200; resultValue.authToken = result.Rows[0].Field <string>("AuthToken"); } else { resultValue.statusCode = spError; } return(resultValue); }
public LoginOK sp_loginuser(int _socialType, string _socialID, string _pw) { LoginOK resultValue = new LoginOK(); int spError = -1; List <DBREQ_PARAM> dbParams = new List <DBREQ_PARAM>(); dbParams.Add(new DBREQ_PARAM("_socialType", DbType.Int32, _socialType)); dbParams.Add(new DBREQ_PARAM("_socialID", DbType.String, _socialID)); dbParams.Add(new DBREQ_PARAM("_pw", DbType.String, _pw)); DataTable result = RunSP("sp_loginuser", CreateDB(), dbParams); spError = result.Rows[0].Field <int>("Result"); if (spError == 0) { resultValue.statusCode = 200; resultValue.authToken = result.Rows[0].Field <string>("AuthToken"); } else { resultValue.statusCode = spError; } return(resultValue); }
private Task Receiver(NetworkStream stream, CancellationTokenSource cts) { return(new Task(() => { Trace.TraceInformation("Receiver task starting..."); //stream.ReadTimeout = 5000; try { while (true) { if (cts.Token.IsCancellationRequested) { break; } DataPackage dataPackage = DataPackage.FromStream(stream); switch (dataPackage.Type) { case MessageType.SYSTEM_LOGIN_OK: { LoginInfo info = Serializer.Deserialize <LoginInfo>(dataPackage.Data); Name = info.Name; LoginOK?.Invoke(this, info); } break; case MessageType.SYSTEM_LOGIN_FAILED: { LoginInfo info = Serializer.Deserialize <LoginInfo>(dataPackage.Data); LoginFailed?.Invoke(this, info); } break; case MessageType.SYSTEM_JOIN_ROOM_OK: { RoomInfo roomInfo = Serializer.Deserialize <RoomInfo>(dataPackage.Data); JoinedInRoom?.Invoke(this, roomInfo); } break; case MessageType.SYSTEM_LEAVE_ROOM_OK: { RoomInfo roomInfo = Serializer.Deserialize <RoomInfo>(dataPackage.Data); LeavedFromRoom?.Invoke(this, roomInfo); } break; case MessageType.CLIENT_MESSAGE: { Message message = Serializer.Deserialize <Message>(dataPackage.Data); MessageReceived?.Invoke(this, message); } break; case MessageType.CLIENT_IMAGE_MESSAGE: { var imageMessage = Serializer.Deserialize <ImageMessage>(dataPackage.Data); ImageMessageReceived?.Invoke(this, imageMessage); } break; case MessageType.CLIENT_FILE_MESSAGE: { var fileMessage = Serializer.Deserialize <FileMessage>(dataPackage.Data); FileMessageReived?.Invoke(this, fileMessage); } break; case MessageType.SYSTEM_FILE_TRANSFER: { var fileMessage = Serializer.Deserialize <FileMessage>(dataPackage.Data); FileReived?.Invoke(this, fileMessage); } break; case MessageType.SYSTEM_MESSAGE_OK: { Receipt receipt = Serializer.Deserialize <Receipt>(dataPackage.Data); MessageArrivied?.Invoke(this, receipt); } break; case MessageType.SYSTEM_MESSAGE: { var message = Encoding.UTF8.GetString(dataPackage.Data); SystemMessageReceived?.Invoke(this, message); break; } case MessageType.CLIENT_LOGOUT: { Name = null; LogoutOK?.Invoke(this, null); goto default; } default: UnknownMessageReceived?.Invoke(this, new SystemMessageEventArgs(dataPackage.Type, dataPackage.Data)); break; } } } catch (EndOfStreamException ex) { Debug.WriteLine($"Client {Name} Receiver: {ex.Message}"); } catch (IOException ex) { if (ex.InnerException is SocketException) { SocketExceptionRaising?.Invoke(this, (SocketException)ex.InnerException); } else { Trace.TraceInformation($"{ex}"); } } ReceiverTaskExited?.Invoke(this, null); Trace.TraceInformation("Receiver task exited"); }, TaskCreationOptions.LongRunning)); }
public LoginController() { parentSpace = "/api/login"; dbhandler = new DBLoginHandler(ConfigurationManager.AppSettings.Get("ConectionDBString")); Get["", true] = async(parameters, ct) => { //Default PageInfo pageInfo = new PageInfo(); pageInfo.langcode = "ko_KR"; pageInfo.langfile = string.Format("/js/lang/ko_KR.js"); return(View["public/index.html", pageInfo]); }; Get["/{langID}", true] = async(parameters, ct) => { PageInfo pageInfo = new PageInfo(); pageInfo.langcode = parameters.langID; pageInfo.langfile = string.Format("/js/lang/{0}.js", parameters.langID); return(View["public/index.html", pageInfo]); }; Post[parentSpace + "/createUser", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int socialType = (int)payload["socialType"]; string socialID = (string)payload["socialID"]; string nickUtf8 = (string)payload["nick"]; Encoding enc = new UTF32Encoding(true, true); //System.Text.Encoding utf8 = System.Text.Encoding.UTF8; string nick = System.Net.WebUtility.UrlDecode(nickUtf8); //string picurl = (string)payload["picurl"]; Random r = new Random(); int imgNumber = r.Next(1, 72); string picurl = String.Format("/img/avatar/default/avartar_{0:00}.png", imgNumber); string email = (string)payload["email"]; string pw = (string)payload["pw"]; pw = Utils.DecryptStringAES(pw); pw = Utils.GetMD5Hash(pw); bool isValidEmail = true; if (socialType == 0) { isValidEmail = isValidEmail && Utils.IsValidEmail(socialID); } ; isValidEmail = isValidEmail && Utils.IsValidEmail(email); if (!isValidEmail) { return(new WebException("ApiError_InvalidEmail", (int)ErrorCode.ApiError_InvalidEmail)); } int createResult = -1; Task t = Task.Run(() => { createResult = dbhandler.sp_createuser(socialType, socialID, nick, picurl, email, pw); }); await t; if (createResult != 0) { return(new WebException("Create failed", createResult)); } return(new WebOK()); }; Post[parentSpace + "/deleteUser", true] = async(parameters, ctor) => { IDictionary <string, object> payload = GetPayLoad(); string authToken = (string)payload["authtoken"]; DBLoginInfo loginInfo = null; Task taskCheckLogin = Task.Run(() => { loginInfo = dbhandler.sp_validtoken(authToken, 1); }); await taskCheckLogin; if (loginInfo == null) { return(new WebException("Login failed", 401)); } string firstID = loginInfo.SocialID.Split('@')[0].Substring(0, 5); if (firstID == "guest") { return(new WebException("Cant't delete guest", 401)); } int deleteResult = -1; Task deleteUser = Task.Run(() => { deleteResult = dbhandler.sp_deleteuser(loginInfo.SocialType, loginInfo.SocialID); }); await deleteUser; if (deleteResult != 0) { return(new WebException("Deleted failed", 500)); } return(new WebOK()); }; Post[parentSpace + "/loginUser", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int socialType = (int)payload["socialType"]; string socialID = (string)payload["socialID"]; string pw = (string)payload["pw"]; if (socialType != 0) { return(new WebException("ApiError_NotAlow SocialLogin", 401)); } pw = Utils.DecryptStringAES(pw); pw = Utils.GetMD5Hash(pw); bool isValidEmail = true; if (socialType == 0) { isValidEmail = isValidEmail && Utils.IsValidEmail(socialID); } ; if (!isValidEmail) { return(new WebException("ApiError_InvalidEmail", (int)ErrorCode.ApiError_InvalidEmail)); } LoginOK result = null; Task t = Task.Run(() => { result = dbhandler.sp_loginuser(socialType, socialID, pw); }); await t; return(result); }; Post[parentSpace + "/loginUserSocial", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int socialType = (int)payload["socialType"]; string authToken = (string)payload["authToken"]; if (socialType == 0) { return(new WebException("ApiError_NotAlow NormalLogin", 401)); } LoginOK resultValue = new LoginOK(); resultValue.statusCode = -401; //FB Mode if (socialType == 1) { DBLoginInfo fbInfo = null; Task t = Task.Run(() => { fbInfo = FBAPI.GetUserData(authToken); }); await t; Random r = new Random(); int imgNumber = r.Next(1, 72); string picurl = String.Format("/img/avatar/default/avartar_{0:00}.png", imgNumber); if (fbInfo != null) { resultValue = dbhandler.sp_loginSocial(socialType, fbInfo.SocialID, fbInfo.Nick, picurl, fbInfo.Email); } } return(resultValue); }; Post[parentSpace + "/validate", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); string authToken = (string)payload["authtoken"]; DBLoginInfo loginInfo = null; Task t = Task.Run(() => { loginInfo = dbhandler.sp_validtoken(authToken, 1); }); await t; if (loginInfo == null) { return(new WebException("Login failed", 401)); } return(loginInfo.ToString()); }; Post["/test2/{id}/add/{category}"] = parameters => { return("post test"); }; }
private void BtnOK_Click(object sender, System.Windows.RoutedEventArgs e) { LoginOK?.Invoke(this, new LoginEventAgrs(txtPassword.Password, txtUsername.Text)); }