private async void HandleMessage(AuthRegister authRegister) { using var scope = _serviceScopeFactory.CreateScope(); var authService = scope.ServiceProvider.GetRequiredService <IAuthService>(); await authService.Register(authRegister); }
public async Task <UserRegister> Register(UserRegister userRegister) { var existingUser = await _userRepository.GetByEmail(userRegister.Email); if (existingUser != null) { throw new ValidationException("Ya se ha registrado con usuario con el correo electrónico"); } var user = Domain.Entities.User.Create(userRegister.Name, userRegister.LastName, userRegister.Phone, userRegister.Email); var secretKey = Encryptor.GetSecretKey(); var passwordEncrypted = Encryptor.GetHash(userRegister.Password, secretKey); await _userRepository.Create(user); var identityRegister = new AuthRegister { UserId = user.Id, Email = user.Email, Password = passwordEncrypted, PasswordKey = secretKey, FullName = $"{user.Name} {user.LastName}", }; _authPublisher.RegisterAuth(identityRegister); return(new UserRegister { Name = user.Name, Email = user.Email, LastName = user.LastName }); }
public void RegisterFromAPI(AuthRegister authRegister) { UserRepository userRepository = new UserRepository(); userRepository.Name = authRegister.Name; userRepository.Email = authRegister.Email; userRepository.Password = BC.HashPassword(authRegister.Password); this.userStoreRepository.Create(userRepository); }
public void RegisterAuth(AuthRegister authRegister) { using var channel = _connection.CreateModel(); channel.QueueDeclare(QueueName, true, false, false, null); var message = JsonSerializer.Serialize(authRegister); var body = Encoding.UTF8.GetBytes(message); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(string.Empty, QueueName, properties, body); }
public async Task <ActionResult> Register(AuthRegister register) { if (!ModelState.IsValid) { return(View(register)); } HttpRequestMessage request = CreateRequestToService(HttpMethod.Post, "api/Users/Register", register); HttpResponseMessage response; try { response = await HttpClient.SendAsync(request); } catch (HttpRequestException) { ModelState.AddModelError("", "Http request error"); return(View(register)); } if (!response.IsSuccessStatusCode) { if ((int)response.StatusCode == 403) { ModelState.AddModelError("", $"Error api response; username has been used already"); } else { ModelState.AddModelError("", $"Error api response"); } return(View(register)); } var success = PassCookiesToClient(response); if (!success) { ModelState.AddModelError("", "Cookie error"); return(View(register)); } // login success return(RedirectToAction("Login", "Home")); }
public ActionResult Register(AuthRegister form) { if (!ModelState.IsValid) { return(View(form)); } var user = new User { pseudo = form.pseudo, email = form.email, birthDate = form.birthDate, }; user.SetPassword(form.password); Database.Session.Save(user); Database.Session.Flush(); return(Content("User " + form.pseudo + " Registered")); }
public async Task <ActionResult <AuthRegister> > Register([FromBody] AuthRegister user) { if (user == null) { return(BadRequest()); } var passwordValidator = new PasswordValidator <IdentityUser>(); if (!(await passwordValidator.ValidateAsync(_userManager, null, user.Password)).Succeeded) { return(BadRequest("Password is too weak")); } if (await _userManager.FindByNameAsync(user.UserName) != null) { return(BadRequest($"User with username: {user.UserName} already exists")); } IdentityUser newUser = new IdentityUser { UserName = user.UserName }; var result = await _userManager.CreateAsync(newUser); if (result.Succeeded) { await _userManager.AddPasswordAsync(newUser, user.Password); // Admin is the only role! await _userManager.AddToRoleAsync(newUser, "Admin"); } else { return(BadRequest(result.Errors)); } return(CreatedAtAction("GetUsers", new { userName = newUser.UserName })); }
public ActionResult Register(AuthRegister form) { if (Database.Session.Query <User>().Any(u => u.Username == form.username)) { ModelState.AddModelError("username", "Kullanıcı adı kullanımda."); } if (!ModelState.IsValid) { return(View(form)); } var user = new User { Email = form.email, Username = form.username, adSoyad = form.adSoyad, addressMah = form.adresMahalle, addRessCadSk = form.adresCadde, addressIl = form.il, addressIlce = form.ilce }; if (form.username == "admin") { setUserRole("admin", user.Roles); } else { setUserRole("user", user.Roles); } user.SetPassword(form.password); Database.Session.Save(user); Database.Session.Flush(); return(RedirectToRoute("Login")); }
public ActionResult Register(AuthRegister form) { var user = new User(); if (Database.Session.Query <User>().Any(u => u.Username == form.Username)) //querys the database for usernames, if it is unique it will continue { ModelState.AddModelError("Username", "Username must be unique"); } if (!ModelState.IsValid) { return(View(form)); } user.Email = form.Email; user.Username = form.Username; user.SetPassword(form.Password); Database.Session.Save(user); return(RedirectToRoute("home")); //method used for GET requests }
public async Task Register(AuthRegister authRegister) { var identity = Identity.Create(authRegister.UserId, authRegister.Email, authRegister.Password, authRegister.PasswordKey); await _identityRepository.Create(identity); var activationCode = ActivationCode.Generate(); var code = Code.Create(Code.CodeType.ActivationCode, activationCode, identity.Id); await _codeRepository.Create(code); var activationCodeEmail = new ActivationCodeEmail { Email = identity.Email, ActivationCode = code.Value, FullName = authRegister.FullName }; _emailPublisher.SendActivationCode(activationCodeEmail); }
public ApiResponse Register(AuthRegister authRegister) { this.userApplication.RegisterFromAPI(authRegister); return(new ApiResponseData(HttpStatusCode.OK, null)); }
/// <summary> /// Packets handled in this function are 'internal' and cannot be overriden. /// </summary> internal bool HandlePacket(PacketEventArgs e) { if (IsCaptcha) { switch ((AresId)e.Packet.Id) { case AresId.MSG_CHAT_CLIENT_FASTPING: FastPing = true; return(true); case AresId.MSG_CHAT_CLIENT_DUMMY: return(true); case AresId.MSG_CHAT_CLIENT_AUTOLOGIN: AutoLogin login = (AutoLogin)e.Packet; AresCommands.HandleAutoLogin(server, this, login.Sha1Password); return(true); case AresId.MSG_CHAT_CLIENT_PUBLIC: ClientPublic pub = (ClientPublic)e.Packet; FinishCaptcha(pub.Message); return(true); case AresId.MSG_CHAT_CLIENT_EMOTE: ClientEmote emote = (ClientEmote)e.Packet; FinishCaptcha(emote.Message); return(true); case AresId.MSG_CHAT_CLIENT_ADDSHARE: return(true); case AresId.MSG_CHAT_CLIENT_UPDATE_STATUS: ClientUpdate update = (ClientUpdate)e.Packet; LastUpdate = DateTime.Now; NodeIp = update.NodeIp; NodePort = update.NodePort; return(true); default: break; } return(false); } else if (LoggedIn) { switch ((AresId)e.Packet.Id) { case AresId.MSG_CHAT_CLIENT_FASTPING: FastPing = true; return(true); case AresId.MSG_CHAT_CLIENT_DUMMY: return(true); case AresId.MSG_CHAT_CLIENT_PUBLIC: ClientPublic pub = (ClientPublic)e.Packet; if (AresCommands.HandlePreCommand(server, this, pub.Message)) { return(true); } if (Muzzled) { server.SendAnnounce(this, Strings.AreMuzzled); return(true); } break; case AresId.MSG_CHAT_CLIENT_EMOTE: ClientEmote emote = (ClientEmote)e.Packet; if (AresCommands.HandlePreCommand(server, this, emote.Message)) { return(true); } if (Muzzled) { server.SendAnnounce(this, Strings.AreMuzzled); return(true); } break; case AresId.MSG_CHAT_CLIENT_COMMAND: Command cmd = (Command)e.Packet; if (AresCommands.HandleCommand(server, this, cmd.Message)) { return(true); } break; case AresId.MSG_CHAT_CLIENT_PVT: Private pvt = (Private)e.Packet; if (Muzzled && !server.Config.MuzzledPMs) { pvt.Message = "[" + Strings.AreMuzzled + "]"; SendPacket(pvt); return(true); } break; case AresId.MSG_CHAT_CLIENT_AUTHREGISTER: { AuthRegister reg = (AuthRegister)e.Packet; AresCommands.HandleRegister(server, this, reg.Password); return(true); } case AresId.MSG_CHAT_CLIENT_AUTHLOGIN: { AuthLogin login = (AuthLogin)e.Packet; AresCommands.HandleLogin(server, this, login.Password); return(true); } case AresId.MSG_CHAT_CLIENT_AUTOLOGIN: { AutoLogin login = (AutoLogin)e.Packet; AresCommands.HandleAutoLogin(server, this, login.Sha1Password); return(true); } case AresId.MSG_CHAT_CLIENT_ADDSHARE: return(true); case AresId.MSG_CHAT_CLIENT_IGNORELIST: Ignored ignore = (Ignored)e.Packet; if (ignore.Ignore) { lock (Ignored) { if (!Ignored.Contains(ignore.Username)) { Ignored.Add(ignore.Username); server.SendAnnounce(this, String.Format(Strings.Ignored, ignore.Username)); } } } else { lock (Ignored) { if (Ignored.Contains(ignore.Username)) { Ignored.Remove(ignore.Username); server.SendAnnounce(this, String.Format(Strings.Unignored, ignore.Username)); } } } return(true); case AresId.MSG_CHAT_CLIENT_UPDATE_STATUS: ClientUpdate update = (ClientUpdate)e.Packet; LastUpdate = DateTime.Now; NodeIp = update.NodeIp; NodePort = update.NodePort; server.SendPacket((s) => s.Vroom == Vroom && s.CanSee(this), new ServerUpdate(this)); return(true); case AresId.MSG_CHAT_CLIENT_DIRCHATPUSH: ClientDirectPush push = (ClientDirectPush)e.Packet; if (Encoding.UTF8.GetByteCount(push.Username) < 2) { SendPacket(new DirectPushError(4)); return(true); } if (push.TextSync.Length < 16) { SendPacket(new DirectPushError(3)); return(true); } IClient target = server.FindUser(s => s.Name == push.Username); if (target == null) { SendPacket(new DirectPushError(1)); return(true); } if (target.Ignored.Contains(Name)) { SendPacket(new DirectPushError(2)); return(true); } SendPacket(new DirectPushError(0)); server.SendPacket(target, new ServerDirectPush(this, push)); return(true); case AresId.MSG_CHAT_CLIENT_BROWSE: SendPacket(new BrowseError(((Browse)e.Packet).BrowseId)); return(true); case AresId.MSG_CHAT_CLIENT_SEARCH: SendPacket(new SearchEnd(((Search)e.Packet).SearchId)); return(true); case AresId.MSG_CHAT_CLIENTCOMPRESSED: { Compressed packet = (Compressed)e.Packet; byte[] payload = Zlib.Decompress(packet.Data); var reader = new PacketReader(payload) { Position = 0L }; while (reader.Remaining >= 3) { ushort count = reader.ReadUInt16(); byte id = reader.ReadByte(); IPacket msg = Socket.Formatter.Unformat(id, reader.ReadBytes(count)); OnPacketReceived(Socket, new PacketEventArgs(msg, WebSocketMessageType.Binary, 0)); } break; } default: break; } return(false);//wasn't handled } else { //not captcha, not logged, error? Logging.Info("AresClient", "Client {0} sent {1} before logging in.", this.ExternalIp, e.Packet.Id); return(true); } }
/// <summary> /// Packets handled in this function are 'internal' cannot be overriden. /// </summary> internal bool HandlePacket(PacketEventArgs e) { if (IsCaptcha) { switch ((AresId)e.Packet.Id) { case AresId.MSG_CHAT_CLIENT_FASTPING: fastping = true; break; case AresId.MSG_CHAT_CLIENT_AUTOLOGIN: AutoLogin login = (AutoLogin)e.Packet; Commands.HandleAutoLogin(server, this, login.Sha1Password); break; case AresId.MSG_CHAT_CLIENT_PUBLIC: ClientPublic pub = (ClientPublic)e.Packet; FinishCaptcha(pub.Message); break; case AresId.MSG_CHAT_CLIENT_EMOTE: ClientEmote emote = (ClientEmote)e.Packet; FinishCaptcha(emote.Message); break; case AresId.MSG_CHAT_CLIENT_ADDSHARE: SharedFile addfile = (SharedFile)e.Packet; if (server.PluginManager.OnFileReceived(this, addfile)) { lock (files) files.Add(addfile); } break; case AresId.MSG_CHAT_CLIENT_UPDATE_STATUS: ClientUpdate update = (ClientUpdate)e.Packet; lastupdate = TimeBank.CurrentTime; NodeIp = update.NodeIp; NodePort = update.NodePort; Age = (update.Age != 0) ? update.Age : Age; Gender = (update.Gender != 0) ? update.Gender : Gender; Country = (update.Country != 0) ? update.Country : Country; Region = !String.IsNullOrEmpty(update.Region) ? update.Region : Region; break; } return(true); //don't handle any other packets yet } else if (LoggedIn) { switch ((AresId)e.Packet.Id) { case AresId.MSG_CHAT_CLIENT_FASTPING: fastping = true; return(true); case AresId.MSG_CHAT_CLIENT_DUMMY: return(true); case AresId.MSG_CHAT_CLIENT_PUBLIC: ClientPublic pub = (ClientPublic)e.Packet; if (!String.IsNullOrEmpty(pub.Message)) { if (pub.Message.StartsWith("#") && Commands.HandlePreCommand(server, this, pub.Message.Substring(1))) { return(true); } } if (Muzzled) { server.SendAnnounce(this, Strings.AreMuzzled); return(true); } return(false); case AresId.MSG_CHAT_CLIENT_EMOTE: ClientEmote emote = (ClientEmote)e.Packet; if (!String.IsNullOrEmpty(emote.Message)) { if (emote.Message.StartsWith("#") && Commands.HandlePreCommand(server, this, emote.Message.Substring(1))) { return(true); } } if (Muzzled) { server.SendAnnounce(this, Strings.AreMuzzled); return(true); } return(false); case AresId.MSG_CHAT_CLIENT_COMMAND: Command cmd = (Command)e.Packet; Commands.HandlePreCommand(server, this, cmd.Message); break; case AresId.MSG_CHAT_CLIENT_PVT: Private pvt = (Private)e.Packet; if (Muzzled && !server.Config.MuzzledPMs) { pvt.Message = "[" + Strings.AreMuzzled + "]"; server.SendPacket(this, pvt); return(true); } return(false); case AresId.MSG_CHAT_CLIENT_AUTHREGISTER: { AuthRegister reg = (AuthRegister)e.Packet; Commands.HandleRegister(server, this, reg.Password); } return(true); case AresId.MSG_CHAT_CLIENT_AUTHLOGIN: { AuthLogin login = (AuthLogin)e.Packet; Commands.HandleLogin(server, this, login.Password); } return(true); case AresId.MSG_CHAT_CLIENT_AUTOLOGIN: { AutoLogin login = (AutoLogin)e.Packet; Commands.HandleAutoLogin(server, this, login.Sha1Password); } return(true); case AresId.MSG_CHAT_CLIENT_ADDSHARE: SharedFile addfile = (SharedFile)e.Packet; if (server.PluginManager.OnFileReceived(this, addfile)) { lock (files) files.Add(addfile); } return(true); case AresId.MSG_CHAT_CLIENT_IGNORELIST: Ignored ignore = (Ignored)e.Packet; if (ignore.Ignore) { lock (ignored) { if (!ignored.Contains(ignore.Username)) { ignored.Add(ignore.Username); server.SendAnnounce(this, String.Format(Strings.Ignored, ignore.Username)); } } } else { lock (ignored) { if (ignored.Contains(ignore.Username)) { ignored.Remove(ignore.Username); server.SendAnnounce(this, String.Format(Strings.Unignored, ignore.Username)); } } } return(true); case AresId.MSG_CHAT_CLIENT_UPDATE_STATUS: ClientUpdate update = (ClientUpdate)e.Packet; lastupdate = TimeBank.CurrentTime; NodeIp = update.NodeIp; NodePort = update.NodePort; Age = (update.Age != 0) ? update.Age : Age; Gender = (update.Gender != 0) ? update.Gender : Gender; Country = (update.Country != 0) ? update.Country : Country; Region = !String.IsNullOrEmpty(update.Region) ? update.Region : Region; server.SendPacket((s) => s.Vroom == Vroom, new ServerUpdate(this)); return(true); case AresId.MSG_CHAT_CLIENT_DIRCHATPUSH: ClientDirectPush push = (ClientDirectPush)e.Packet; if (Encoding.UTF8.GetByteCount(push.Username) < 2) { server.SendPacket(this, new DirectPushError(4)); return(true); } if (push.TextSync.Length < 16) { server.SendPacket(this, new DirectPushError(3)); return(true); } IClient target = server.FindUser(s => s.Name == push.Username); if (target == null) { server.SendPacket(this, new DirectPushError(1)); return(true); } if (target.Ignored.Contains(Name)) { server.SendPacket(this, new DirectPushError(2)); return(true); } server.SendPacket(this, new DirectPushError(0)); server.SendPacket(target, new ServerDirectPush(this, push)); return(true); case AresId.MSG_CHAT_CLIENT_BROWSE: Browse browse = (Browse)e.Packet; browse.Type = (byte)((browse.Type == 0) ? (byte)255 : browse.Type); browse.Type = (byte)((browse.Type == 8) ? (byte)0 : browse.Type); IClient browse_target = server.FindUser(s => s.Vroom == Vroom && s.Name == browse.Username); if (browse_target == null) { return(true); } else if (browse_target.Files.Count == 0) { server.SendPacket(this, new BrowseError(browse.BrowseId)); } else { server.SendPacket(this, new BrowseStart(browse.BrowseId, (ushort)browse_target.Files.Count)); foreach (var file in browse_target.Files) { if (browse.Type == 255 || browse.Type == file.Type) { server.SendPacket(this, new BrowseItem(browse.BrowseId, file)); } } server.SendPacket(this, new BrowseEnd(browse.BrowseId)); } return(true); case AresId.MSG_CHAT_CLIENT_SEARCH: Search search = (Search)e.Packet; search.Type = (byte)((search.Type == 0) ? (byte)255 : search.Type); search.Type = (byte)((search.Type == 8) ? (byte)0 : search.Type); foreach (var user in server.Users) { if (user != this && user.Vroom == Vroom) { foreach (var file in user.Files) { if (file.SearchWords.ContainsAny(search.SearchWords.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries))) { server.SendPacket(this, new SearchHit(search.SearchId, user, file)); } } } } server.SendPacket(this, new SearchEnd(search.SearchId)); return(true); } return(false);//wasn't handled } else { return(true);//not captcha, not logged, error } }