Esempio n. 1
0
        public async Task <IHttpActionResult> Register(RegisterUserMessage message)
        {
            await Task.Delay(3000);

            // verify if login credentials are correct
            if (!message.IsValid)
            {
                return(BadRequest("The Register User has some invalid data."));
            }

            // if user exists, throw
            var usernameUser = await userManager.FindByNameAsync(message.Username);

            if (usernameUser != null)
            {
                return(BadRequest("There is already a User registered with these credentials."));
            }

            // create a new User
            string     passwordHash = new PasswordHasher().HashPassword(message.Password);
            CustomUser customUser   = CustomUser.Create(Guid.NewGuid().ToString(), message.Username, message.Email,
                                                        passwordHash, DateTime.Now.ToString()
                                                        );

            // register
            await userManager.CreateAsync(customUser);

            return(Ok("User has been registered."));
        }
        private void BTNCreate_Click(object sender, EventArgs e)
        {
            string username = TBUsername.Text.Trim();
            string password = TBPassword.Text;
            string email    = TBEmail.Text;

            if (username == "")
            {
                MessageBox.Show(this, "You need to specify a username.");
                return;
            }
            if (password == "")
            {
                MessageBox.Show(this, "You need to specify a password.");
                return;
            }

            BinaryFormatter     formatter = new BinaryFormatter();
            RegisterUserMessage msg       = new RegisterUserMessage()
            {
                Name = username, Password = password, Email = email
            };
            //Encrypt
            MemoryStream stream = new MemoryStream();

            formatter.Serialize(stream, msg);
            EncryptedMessage encrMsg = new EncryptedMessage();

            encrMsg.Encrypt(stream.ToArray(), Properties.Resources.serverPublicKey);
            stream.Close();



            //Send it
            TcpClient     client        = new TcpClient(Form1.ServerIP, 25634);
            NetworkStream networkStream = client.GetStream();

            formatter.Serialize(networkStream, encrMsg);
            object obj = formatter.Deserialize(networkStream);

            client.Close();

            if (obj is string && ((string)obj) == "OK")
            {
                MessageBox.Show(this, "Account created successfully", "Success");
                Close();
            }
            else if (obj is ErrorMessage)
            {
                MessageBox.Show(this, ((ErrorMessage)obj).MSG, "Error");
            }
            else
            {
                MessageBox.Show(this, "Unknown response recieved from server.", "Error");
            }
        }