Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo:
Desarrollo:
1. Crearemos una tabla en donde insertaremos un par de usuarios para realizar pruebas. Ejecutar
el archivo .sql proporcionado para esta práctica.
5. Selecciona la conexión con la base de datos en donde está la tabla Usuarios. En este ejemplo
se usa la base de datos Catastro.mdf
6. Luego selecciona la tabla Usuarios que fue creada al inicio de esta guía y aceptar el nombre
predeterminado de Modelo y verifique las opciones como se muestra en la imagen a
continuación:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Mvc_login.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
9. No olvidemos modificar cual será nuestra página principal, para ello, en la carpeta App_Start
tenemos el archivo RouteConfig.cs que define la ruta predeterminada como se muestra en el
código abajo:
using System.Web.Mvc;
using System.Web.Routing;
namespace Mvc_login
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
Cambiaremos esto, porque queremos que se llame Login al comenzar la solicitud, en esta
ocasión crearemos esta acción en el HomeController.
using System.Web.Mvc;
using System.Web.Routing;
namespace Mvc_login
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
);
}
}
}
10. Después de eso en la carpeta Controllers abra el archivo HomeController y definir la acción
Login:
public ActionResult Login()
{
return View();
}
11. Ahora creemos el nuestra view para Login desde la acción Login. Haz clic con el botón derecho
en la acción Login y luego Agregar vista:
12. En la ventana Agregar vista definamos el nombre de la Vista como Login definir la plantilla en
blanco y elija el Modelo y el contexto de datos como se muestra en la figura a continuación:
14. Este será nuestro formulario de inicio de sesión que se presentará al usuario para introducir
el nombre de usuario y contraseña:
15. Después del usuario introduzca el nombre y la contraseña del usuario se producirá un post
que crearemos con un Action Login en el archivo HomeController.cs definiendo otro Login que
recibirá los datos ingresados:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(Usuario u)
{
// esta action trata o post (login)
if (ModelState.IsValid) //verifica se é válido
{
using (CadastroEntities dc = new CadastroEntities())
{
var v = dc.Usuarios.Where(a => a.NomeUsuario.Equals(u.NomeUsuario) &&
a.Senha.Equals(u.Senha)).FirstOrDefault();
if (v != null)
{
Session["usuarioLogadoID"] = v.Id.ToString();
Session["nomeUsuarioLogado"] = v.NomeUsuario.ToString();
return RedirectToAction("Index");
}
}
}
return View(u);
}
16. En el Index del controlador HomeController vamos a verificar la autenticación del usuario con
la variable usuarioLogadoID que no sea null. Si falla el inicio de sesión regresamos al usuario a
Login. Para hacer esto agregamos el código en index:
public ActionResult Index()
{
if (Session["usuarioLogadoID"] != null)
{
return View();
}
else
{
return RedirectToAction("Login");
}
}