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
[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