Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async void ButtonRegister_Click(object sender, RoutedEventArgs e)
- {
- bool isValid = false;
- //comprobacion de si la clave tiene un minimo de 3 caracteres comn un if
- if (PasswordBoxPass.Password.Length >= 3)
- {
- //aqui se hace otra comprobacion con otro if para ver si los password coinciden
- if (PasswordBoxPass.Password == PasswordBoxConfirmation.Password)
- {
- //comprobnar que el texto puesto en la textbox es un correo electronico y si no lo es no dejar seguir el proceso de registro y dar un error con un mensaje
- //aqui lo que hago una vez ya conectado con Windowsazure es introducir datos una vez que el usuario le al boton register
- string password = PasswordBoxPass.Password;
- RegexUtil RegexUtil = new RegexUtil();
- //el metodo isValidEmail me devolvera false o true dependiendo de si la cadena la toma como buena o mala si tiene o no formato de email
- isValid = RegexUtil.IsValidEmail(TextBoxEmail.Text);
- if (isValid == true)
- {
- //para introducir el dato del usuario en el servicio movil
- try
- {
- //aqui probaremos tambien a cifrar la clave
- //lo que haremos sera el metodo parse para transformar la string en Byte
- //byte password = byte.Parse(PasswordBoxPass.Password);ç
- /* este codigo no me sirve para generar el hash de la clave que es lo que vamos a almacenar junto con el codigo salt
- byte[] password = new byte[PasswordBoxPass.Password.Length];
- for (int i = 0; i < PasswordBoxPass.Password.Length; i++)//haz un ciclo para llenar el arreglo
- {
- password[i] = byte.Parse(PasswordBoxPass.Password[i].ToString());//conversion!!! la variable i representa la posicion en k se encuentra
- }
- */
- byte[] salt = CryptoPassHttp.GetSalt();
- byte[] hash = CryptoPassHttp.GenerateHash(PasswordBoxPass.Password, salt);
- //en este metodo lo que estoy obteniendo es el usuario para insertarlo en la base de datos
- usuarios user = CryptoPassHttp.GetSecureUserModel(TextBoxName.Text, password, TextBoxEmail.Text, salt);
- //realizar el salvado de datos del usuario a registrar con los datos que tenemos
- //obtener los datos de los textbox y passeordbox
- user.nombre = TextBoxName.Text;
- user.email = TextBoxEmail.Text;
- user.salt = salt.ToString();
- user.hash = hash.ToString();
- //await userTable.InsertAsync(user);
- //sincronizar los elementos de la tabla
- //este elemento es el que falla
- //items = await userTable.ToCollectionAsync();
- //user.Id = items.Count + 1;
- //para actualizar la tabla
- //await userTable.UpdateAsync(user);
- JsonObject jsonObject = new JsonObject();
- //vamos a ver la forma de trabajar con texto con json segun el ejemplo de Microsoft y adaprlo a mi codigo segun lo que tenga que enviar
- jsonObject["nombre"] = JsonValue.CreateStringValue(TextBoxName.Text);
- jsonObject["email"] = JsonValue.CreateStringValue(TextBoxEmail.Text);
- jsonObject["hash"] = JsonValue.CreateStringValue(user.hash);
- jsonObject["salt"] = JsonValue.CreateStringValue(user.salt);
- string jsonString = jsonObject.Stringify();
- HttpResponseMessage response = new HttpResponseMessage();
- Uri uri = new Uri("http://192.168.1.2/laravelplan/public/api/rest/users");
- HttpClient httpClient = new HttpClient();
- // aqui haremos la comprobacion de si esta o no el servicio disponible en el caso de que no este disponible dar un mensaje
- try
- {
- response = await httpClient.GetAsync(uri);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK);
- }
- //response obtiene lacadena con esa cadena tengo que trabajar para saber cuantos id hay
- // lo que obtengo del GetAsync(uri) es el json pero lo tengo en en objeto HttpResponseMessage,
- // te das cuenta de ahi lo que necesito saber es los id que hay ¿como lo harias tu? es que no se
- // como hacerlo.
- IHttpContent iHttpContent = response.Content;
- string sUsuarios = iHttpContent.ToString();
- JsonSerializer jsonSerializer = new JsonSerializer();
- ParseJsonArray parseJsonArray = new ParseJsonArray();
- int numeroUsuarios = parseJsonArray.ParseJsonObject(sUsuarios);
- /*
- JsonObject jsonObjectString = new JsonObject();
- JsonArray jsonArray = new JsonArray();
- jsonObjectString = JsonObject.Parse(sUsuarios);
- */
- //parsear el objeto
- if (response.IsSuccessStatusCode)
- {
- Task<bool> users = CryptoPassHttp.RegisterUser(user, jsonString);
- }
- else
- {
- MessageBox.Show("Don't allow REST service on the internet", "Error", MessageBoxButton.OK);
- }
- /*
- Task<bool> Resultado = CryptoPassHttp.GetUserFromDatabase(TextBoxEmail.Text, jsonObject);
- if (Resultado.Result)
- {
- }
- else
- {
- }
- */
- //aqui ya se va al otro XAML en la finalizacion del programa se ira al de aceptarlos terminos y condiciones del programa
- /*
- Task<usuarios> userpass = CryptoPassHttp.VerifyLogin(user.email, password);
- //
- if (users.Result == false)
- {
- MessageBox.Show("user exist in the database, choose other user", "Information", MessageBoxButton.OK);
- }
- else if (userpass == null)
- {
- MessageBox.Show("Password incorrect", "Information", MessageBoxButton.OK);
- }
- */
- //aqui ya te lleva a la ventana para trabajar con el programa
- NavigationService.Navigate(new Uri("/PivotProgram.xaml" + TextBoxEmail.Text, UriKind.Relative));
- //usuarios usuario = new usuarios { usuario = TextBoxUser.Text, hash = PasswordBoxPass.Password, email = TextBoxEmail.Text };
- //App.MobileService.GetTable<usuarios>().InsertAsync(usuario);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- else
- {
- MessageBox.Show("the format e-mail is not correct", "Information", MessageBoxButton.OK);
- }
- }
- else
- {
- MessageBox.Show("password fail must be equal", "Information", MessageBoxButton.OK);
- PasswordBoxPass.SelectAll();
- PasswordBoxConfirmation.Password = "";
- PasswordBoxPass.Focus();
- }
- }
- //comprobar primero que sean la misma clave en las 2 passwordbox
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement