Pop

52.Servicios Web.Nuevo método en nuestro WS. Curso de C# con Visual Studio 2017.

52-.Servicios Web.Nuevo método en nuestro WS

  - En este capítulo del curso de programación en c# con visual studio 2017,vamos a continuar con  los servicios web.En esta ocación vamos a añadir un método más a nuestro servicio web para continuar practicando.
- En entradas anteriores del blog teniamos hecha la lógica para dar de alta un usuario en nuestra base de datos.Vamos a añadir al servicio web este método con su correspondiente lógica para guardar en base de datos.Además vamos a proceder a llamar al nuevo método recien implementado desde nuestro cliente.
- En el video muestro este proceso:


- Os dejo el código de ejemplo desglsoado por partes.

  • Nuevo método de Alta de Usuario de nuestro web service
        [WebMethod]
        [SoapHeader("Authentication")]
        public Boolean AltaUsuario(byte[] passCifrada, string nombreUsuario, string email, string codPais)
        {
            Boolean todoOk = true;
            SqlConnection conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
            if (Authentication.usuario == ConfigurationManager.AppSettings["Usuario"].ToString() && Authentication.pass == ConfigurationManager.AppSettings["Pass"].ToString())
            {
                try
                {
                    conexion.Open();
                    SqlCommand com = conexion.CreateCommand();
                    com.CommandType = System.Data.CommandType.StoredProcedure;
                    com.CommandText = "dbo.AltaUsuario";
                    com.Parameters.Add("@nombre", SqlDbType.VarChar, 255).Value = nombreUsuario;
                    com.Parameters.Add("@email", SqlDbType.VarChar, 255).Value = email;
                    com.Parameters.Add("@pass", SqlDbType.VarBinary, 8000).Value = passCifrada;
                    com.Parameters.Add("@codPais", SqlDbType.VarChar, 3).Value = codPais;

                    com.ExecuteNonQuery();
                }


                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
                finally
                {
                    if (conexion != null && conexion.State == System.Data.ConnectionState.Open)
                        conexion.Close();

                    conexion.Dispose();
                }
            }
            else todoOk = false;

            return todoOk;
        }

  • Llamada para el alta de ususario desde nuestro cliente.Código de la parte de servidor:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GestionVarios
{
    public partial class AltaUsuario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void mbtnRegistrar_Click(object sender, EventArgs e)
        {
            lblError.Visible = true;
            if (chkCondiciones.Checked == false)
            {
                
                lblError.Text = "Debes aceptar los términos y condiciones del servicio.";
            }
            else
            {
                byte[] passCifrada = cifrar(mtxtPassword.Text.Trim());
                if (guardarUsuario(passCifrada))
                {
                    lblError.Text = "Usuario dado de alta correctamente";
                    lblError.ForeColor = Color.Green;
                }

            }
        }

        private Boolean guardarUsuario(byte[] passCifrada)
        {
            Boolean todoOk = true;
            SqlConnection conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
            try
            {
                WSPruebas.Pruebas pruebas = new WSPruebas.Pruebas();
                pruebas.AuthHeaderValue = new WSPruebas.AuthHeader();
                pruebas.AuthHeaderValue.pass = "pass";
                pruebas.AuthHeaderValue.usuario = "pepe";

                todoOk= pruebas.AltaUsuario(passCifrada, txtnombre.Text, mtxtEMail.Text, cmbPaises.SelectedValue);

            }
            catch (Exception ex)
            {
                lblError.Text = "Se produjo un error guardando el usuario." + ex.Message;
                lblError.ForeColor = Color.Red;
                todoOk = false;
            }
         

            return todoOk;
        }

        private byte[] cifrar(string cadenaAcifrar)
        {
            String miclave = ConfigurationManager.AppSettings["clave"];
            byte[] claveCifrado = System.Text.Encoding.ASCII.GetBytes(miclave);
            Cifrado c = new Cifrado(claveCifrado);
            byte[] b = c.cifrar(cadenaAcifrar);
            return b;
        }



    }
}



No hay comentarios:

Publicar un comentario

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...