39-. Aplicaciones web. Autenticación.Carrito de compra(2)
- En este capítulo del curso de programación en c# con visual studio 2017,vamos a crear un mecanismo de autenticación. Ya teniamos hecho en entradas anteriores del blog la validación contra nuestra base de datos.Esta nueva validación añadida a la que ya teniamos hecha previamente, nos servirá para controlar que páginas mostamos a los usuarios que esten logados y que páginas son de aceso público.- Además como muestro en el video , aprovecharemos para generar las cookies y datos necesarios para poder generar un pedido con el usuario que inicio sesión en nuestro sitio de pruebas.
* En el siguiente enlace os dejo información más detallada sobre el como implementar la autenticación de formularios simple:https://msdn.microsoft.com/es-es/library/xdt4thhy(v=vs.100).aspx
* Para ver más claro el ejemplo os pongo por escrito los pasos vistos en el video para poder utilizar este tipo de autenticación:
- Añadimos en fichero de configuración web.config el tipo de autenticación y las de las páginas a las que afecta:
<authentication mode="Forms">
<forms loginUrl="Default.aspx" name=".ASPXFORMSAUTH" path="/" defaultUrl="~/Premium/Default.aspx" slidingExpiration="false" enableCrossAppRedirects="false" timeout="3600"/>
</authentication>
</system.web>
<location path="Premium">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
2. Una vez que tenemos el usuario validado contra nuestra base de datos generamos una cookie:
private void crearCookie(String email, int idUsuario)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(email, false, 60);
string ticketEncriptado = FormsAuthentication.Encrypt(ticket);
HttpCookie SesionUsuario = new HttpCookie("Cookie", ticketEncriptado);
SesionUsuario.Expires = DateTime.Now.AddDays(366);
HttpContext.Current.Response.Cookies.Add(SesionUsuario);
FormsAuthentication.RedirectFromLoginPage(idUsuario.ToString(), false);
}
3. Ya tenemos diponible el idusuario que vamos a utilizar para generar el pedido:
Convert.ToInt32(HttpContext.Current.User.Identity.Name);
No hay comentarios:
Publicar un comentario