Advertisement
onzulin

metodo para registrar usuario

Oct 22nd, 2014
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.22 KB | None | 0 0
  1. private async void ButtonRegister_Click(object sender, RoutedEventArgs e)
  2.         {
  3.             bool isValid = false;
  4.            
  5.             //comprobacion de si la clave tiene un minimo de 3 caracteres comn un if
  6.             if (PasswordBoxPass.Password.Length >= 3)
  7.             {
  8.                 //aqui se hace otra comprobacion con otro if para ver si los password coinciden
  9.                 if (PasswordBoxPass.Password == PasswordBoxConfirmation.Password)
  10.                 {
  11.                
  12.                     //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
  13.  
  14.                     //aqui lo que hago una vez ya conectado con Windowsazure es introducir datos una vez que el usuario le al boton register
  15.                     string password = PasswordBoxPass.Password;
  16.  
  17.                     RegexUtil RegexUtil = new RegexUtil();
  18.                     //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
  19.                     isValid = RegexUtil.IsValidEmail(TextBoxEmail.Text);
  20.                     if (isValid == true)
  21.                     {
  22.                         //para introducir el dato del usuario en el servicio movil
  23.                         try
  24.                         {
  25.                             //aqui probaremos tambien a cifrar la clave
  26.                             //lo que haremos sera el metodo parse para transformar la string en Byte
  27.                             //byte password = byte.Parse(PasswordBoxPass.Password);ç
  28.                             /* este codigo no me sirve para generar el hash de la clave que es lo que vamos a almacenar junto con el codigo salt
  29.                             byte[] password = new byte[PasswordBoxPass.Password.Length];
  30.                             for (int i = 0; i < PasswordBoxPass.Password.Length; i++)//haz un ciclo para llenar el arreglo
  31.                             {
  32.                                 password[i] = byte.Parse(PasswordBoxPass.Password[i].ToString());//conversion!!! la variable i representa la posicion en k se encuentra
  33.                             }
  34.                             */
  35.                             byte[] salt = CryptoPassHttp.GetSalt();
  36.                             byte[] hash = CryptoPassHttp.GenerateHash(PasswordBoxPass.Password, salt);
  37.                             //en este metodo lo que estoy obteniendo es el usuario para insertarlo en la base de datos
  38.  
  39.                             usuarios user = CryptoPassHttp.GetSecureUserModel(TextBoxName.Text, password, TextBoxEmail.Text, salt);
  40.                             //realizar el salvado de datos del usuario a registrar con los datos que tenemos
  41.                             //obtener los datos de los textbox y passeordbox
  42.                             user.nombre = TextBoxName.Text;
  43.                             user.email = TextBoxEmail.Text;
  44.                             user.salt = salt.ToString();
  45.                             user.hash = hash.ToString();
  46.  
  47.                             //await userTable.InsertAsync(user);
  48.                             //sincronizar los elementos de la tabla
  49.                             //este elemento es el que falla
  50.                             //items = await userTable.ToCollectionAsync();
  51.                             //user.Id = items.Count + 1;
  52.                             //para actualizar la tabla
  53.                             //await userTable.UpdateAsync(user);
  54.                             JsonObject jsonObject = new JsonObject();
  55.                             //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
  56.                             jsonObject["nombre"] = JsonValue.CreateStringValue(TextBoxName.Text);
  57.                             jsonObject["email"] = JsonValue.CreateStringValue(TextBoxEmail.Text);
  58.                             jsonObject["hash"] = JsonValue.CreateStringValue(user.hash);
  59.                             jsonObject["salt"] = JsonValue.CreateStringValue(user.salt);
  60.                             string jsonString = jsonObject.Stringify();
  61.                             HttpResponseMessage response = new HttpResponseMessage();
  62.                             Uri uri = new Uri("http://192.168.1.2/laravelplan/public/api/rest/users");
  63.                             HttpClient httpClient = new HttpClient();
  64.                             // aqui haremos la comprobacion de si esta o no el servicio disponible en el caso de que no este disponible dar un mensaje
  65.                            
  66.                             try
  67.                             {
  68.                                 response = await httpClient.GetAsync(uri);
  69.                                
  70.  
  71.                             }
  72.                             catch (Exception ex)
  73.                             {
  74.                                 MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK);
  75.                             }
  76.                             //response obtiene lacadena con esa cadena tengo que trabajar para saber cuantos id hay
  77.                 // lo que obtengo del GetAsync(uri) es el json pero lo tengo en en objeto HttpResponseMessage,
  78.                 // te das cuenta de ahi lo que necesito saber es los id que hay ¿como lo harias tu? es que no se
  79.                 // como hacerlo.
  80.                             IHttpContent iHttpContent = response.Content;
  81.                             string sUsuarios = iHttpContent.ToString();
  82.                             JsonSerializer jsonSerializer = new JsonSerializer();
  83.                            
  84.                             ParseJsonArray parseJsonArray = new ParseJsonArray();
  85.                             int numeroUsuarios = parseJsonArray.ParseJsonObject(sUsuarios);
  86.                             /*
  87.                             JsonObject jsonObjectString = new JsonObject();
  88.                             JsonArray jsonArray = new JsonArray();
  89.                             jsonObjectString = JsonObject.Parse(sUsuarios);
  90.                             */
  91.                             //parsear el objeto
  92.  
  93.                             if (response.IsSuccessStatusCode)
  94.                             {
  95.                                 Task<bool> users = CryptoPassHttp.RegisterUser(user, jsonString);
  96.                             }
  97.                             else
  98.                             {
  99.                                 MessageBox.Show("Don't allow REST service on the internet", "Error", MessageBoxButton.OK);
  100.                             }
  101.                             /*
  102.                             Task<bool> Resultado = CryptoPassHttp.GetUserFromDatabase(TextBoxEmail.Text, jsonObject);
  103.                             if (Resultado.Result)
  104.                             {
  105.                                
  106.                             }
  107.                             else
  108.                             {
  109.  
  110.                             }
  111.                             */
  112.                            
  113.                              //aqui ya se va al otro XAML en la finalizacion del programa se ira al de aceptarlos terminos y condiciones del programa
  114.                             /*
  115.                             Task<usuarios> userpass = CryptoPassHttp.VerifyLogin(user.email, password);
  116.                             //
  117.                             if (users.Result == false)
  118.                             {
  119.                                 MessageBox.Show("user exist in the database, choose other user", "Information", MessageBoxButton.OK);
  120.                             }
  121.                             else if (userpass == null)
  122.                             {
  123.                                 MessageBox.Show("Password incorrect", "Information", MessageBoxButton.OK);
  124.                             }
  125.                             */
  126.                             //aqui ya te lleva a la ventana para trabajar con el programa
  127.                             NavigationService.Navigate(new Uri("/PivotProgram.xaml" + TextBoxEmail.Text, UriKind.Relative));
  128.  
  129.                            
  130.                            
  131.                            
  132.  
  133.                             //usuarios usuario = new usuarios { usuario = TextBoxUser.Text, hash = PasswordBoxPass.Password, email = TextBoxEmail.Text };
  134.                             //App.MobileService.GetTable<usuarios>().InsertAsync(usuario);
  135.  
  136.                         }
  137.                         catch (Exception ex)
  138.                         {
  139.                             MessageBox.Show(ex.Message);
  140.                         }
  141.  
  142.                     }
  143.                     else
  144.                     {
  145.                         MessageBox.Show("the format e-mail is not correct", "Information", MessageBoxButton.OK);
  146.                     }
  147.                 }
  148.                 else
  149.                 {
  150.                     MessageBox.Show("password fail must be equal", "Information", MessageBoxButton.OK);
  151.                     PasswordBoxPass.SelectAll();
  152.                     PasswordBoxConfirmation.Password = "";
  153.                     PasswordBoxPass.Focus();
  154.                    
  155.                 }
  156.             }
  157.             //comprobar primero que sean la misma clave en las 2 passwordbox
  158.            
  159.         }
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement