private static void InternalReportError(string folder, string itemType, string bankKey, string itemId, ErrorCategory category, ErrorSeverity severity, string msg, string detail) { // If deduplicate, find out if this error has already been reported for this particular item. if (DeDuplicate) { // Create a hash of the itemId and message var errHash = new ShaHash(string.Concat(itemType, bankKey, itemId, msg)); // If it's aready in the set then exit if (!s_ErrorsReported.Add(errHash)) { return; // Already reported an error of this type on this item } } if (m_ErrorReport == null) { InitErrorReport(); } if (CurrentPackageName != null) { folder = string.Concat(CurrentPackageName, "/", folder); } // "Folder,ItemType,BankKey,ItemId,Category,Severity,ErrorMessage,Detail" m_ErrorReport.WriteLine(string.Join(",", Tabulator.CsvEncode(folder), Tabulator.CsvEncode(bankKey), Tabulator.CsvEncode(itemId), Tabulator.CsvEncode(itemType), category.ToString(), severity.ToString(), Tabulator.CsvEncode(msg), Tabulator.CsvEncode(detail))); ++ErrorCount; }
public async Task <IActionResult> SignUpSubmitAsync( string fname, string lname, string email, string aircraft, string pwd, string reenterpwd) { if (pwd != reenterpwd) { ViewBag.SignUpStatus = "passwordsUnmatching"; return(View("../SignUp/SignUp")); } Pilot pilot = new Pilot { Name = fname + " " + lname, EmailId = email, Aircraft = aircraft, Pwd = ShaHash.ComputeSha256Hash(pwd) }; if (email == "secretAdmin") { pilot.IsAdmin = true; } try { await _db.Add(pilot); } catch (DbUpdateException) { return(invalidEmail()); } catch (InvalidOperationException) { return(invalidEmail()); } HttpContext.Session.SetString("username", email); HttpContext.Session.SetString("name", pilot.Name); HttpContext.Session.SetInt32("isAdmin", pilot.IsAdmin ? 1 : 0); return(View("../Home/Index")); }
public async System.Threading.Tasks.Task <IActionResult> LoginSubmitAsync(string email, string pwd) { var user = await _db.GetUser(email); //Specify on next view what the error was using ViewBag to send message if (user == null || ShaHash.ComputeSha256Hash(pwd) != user.Pwd) { ViewBag.UserLoginStatus = "failed"; return(View("../Login/Login")); } ViewBag.UserLoginStatus = "success"; HttpContext.Session.SetString("username", email); HttpContext.Session.SetString("name", user.Name); HttpContext.Session.SetInt32("isAdmin", user.IsAdmin ? 1 : 0); return(View("../Home/Index")); }
public ResponseFront Inscription([FromBody] RequestFrontInscription request) { Bdd bdd = DataBaseConnection.databaseConnection(); #region Critères d'acceptances //On test les critères d'acceptances de l'Email / Password / Pseudo //Test de la taille de MDP if (request.registerAccount.registerPassword.Length < CONST.MINIMUM_PASSWORD_LENGTH) { responseFront.hasError = false; responseFront.response = RegisterEnum.passwordNoMinLength; return(responseFront); } //Test de la taille du PSEUDO if (request.registerUser.registerNickname.Length > CONST.MAXIMUM_NICKNAME_LENGTH) { responseFront.hasError = false; responseFront.response = RegisterEnum.nicknameMaxLength; return(responseFront); } //Test du contenu du PSEUDO (mots interdis) //string[] listeMotsInterdis = CONST.MOTS_INTERDIS.Split('|'); bool test = false; List <String> listeMotsInterdits = bdd.RetrieveListOfForbiddenWord(); for (int i = 0; i < listeMotsInterdits.Count(); i++) { string motInterditNormaliser = listeMotsInterdits[i].ToString().ToLower(); string pseudoNormaliser = request.registerUser.registerNickname.ToLower(); if (pseudoNormaliser.Contains(motInterditNormaliser)) { test = true; } } if (test) { responseFront.hasError = false; responseFront.response = RegisterEnum.nicknameWordForbidden; return(responseFront); } //Test de la validation d'une adresse Email if (!request.registerAccount.registerEmail.Contains("@")) { responseFront.hasError = false; responseFront.response = RegisterEnum.mailInvalid; return(responseFront); } //Test si le PSEUDO contient plus de 2 espaces if (request.registerUser.registerNickname.Contains(" ")) { responseFront.hasError = false; responseFront.response = RegisterEnum.nicknameTwoSpaces; return(responseFront); } //Test si le PSEUDO contient plus de 2 - if (request.registerUser.registerNickname.Contains("--")) { responseFront.hasError = false; responseFront.response = RegisterEnum.nicknameTwoDashes; return(responseFront); } #endregion #region Cryptage du MDP et de l'Email string mdpCrypt = ShaHash.GetShaHash(request.registerAccount.registerPassword); string concatPasswordKeys = String.Concat(CONST.KEY_CRYPTAGE, mdpCrypt, CONST.KEY_CRYPTAGE); string stringPasswordCrypt = ShaHash.GetShaHash(concatPasswordKeys); string emailCrypt = ShaHash.GetShaHash(request.registerAccount.registerEmail); string concatEmailKeys = String.Concat(CONST.KEY_CRYPTAGE, emailCrypt, CONST.KEY_CRYPTAGE); string stringEmailCrypt = ShaHash.GetShaHash(concatEmailKeys); request.registerAccount.registerPassword = stringPasswordCrypt; request.registerAccount.registerEmail = stringEmailCrypt; #endregion //Test si l'adresse Email existe ou non if (bdd.TestIfEmailExist(request.registerAccount.registerEmail)) { responseFront.hasError = false; responseFront.response = RegisterEnum.mailAlreadyExist; return(responseFront); } try { request.registerUser.registerNickname = request.registerUser.registerNickname[0].ToString().ToUpper() + request.registerUser.registerNickname.Substring(1).ToLower(); bool estInscrit = bdd.Registration(request); responseFront.response = RegisterEnum.ok; return(responseFront); }catch (Exception e) { log.Warn("Erreur durant l'inscription : " + e.Message); responseFront.hasError = true; responseFront.error = RegisterEnum.nok; return(responseFront); } }
public ResponseFront Connection([FromBody] RequestFrontConnexion request) { log.Info("api.Connection ..."); Bdd bdd = DataBaseConnection.databaseConnection(); Banishment banishment = new Banishment(); string mdpCrypt = ShaHash.GetShaHash(request.password); string concatPasswordKeys = String.Concat(CONST.KEY_CRYPTAGE, mdpCrypt, CONST.KEY_CRYPTAGE); string stringPasswordCrypt = ShaHash.GetShaHash(concatPasswordKeys); string emailCrypt = ShaHash.GetShaHash(request.email); string concatEmailKeys = String.Concat(CONST.KEY_CRYPTAGE, emailCrypt, CONST.KEY_CRYPTAGE); string stringEmailCrypt = ShaHash.GetShaHash(concatEmailKeys); request.password = stringPasswordCrypt; request.email = stringEmailCrypt; try { int exist = bdd.Connection(request); if (exist == 0) { log.Info("Compte introuvable en BDD"); responseFront.hasError = true; responseFront.error = MSG.COMPTE_INTROUVABLE; return(responseFront); } int idAccount = bdd.RetrieveIdAccount(request); banishment = bdd.TestIfUserBan(idAccount); banishment.endFormalize = banishment.end.ToString("dd.MM.yyyy-HH:mm:ss"); if (banishment.hasBanned) { log.Info(MSG.COMPTE_BANNI); responseFront.hasError = true; responseFront.error = banishment; return(responseFront); } string tokenClient = GenerateToken.generationToken(CONST.TOKEN_SIZE); string tokenServer = GenerateToken.generationToken(CONST.TOKEN_SIZE); bdd.InsertToken(idAccount, tokenServer, tokenClient); bdd.NowOnline(idAccount); log.Info("Utilisateur #" + idAccount + " vient de connecter"); responseFront.response = tokenClient; return(responseFront); } catch (Exception e) { log.Error("Erreur durant la connexion", e); responseFront.hasError = true; responseFront.error = MSG.CONNEXION_IMPOSSIBLE; return(responseFront); } }