protected void SingIn(object sender, EventArgs e)
        {
            try {
                ModelState.Clear();

                var usuario    = txtUsuario.Text;
                var contrasena = txtContrasena.Text;
                var returnUrl  = Request.QueryString["ReturnUrl"];

                if (!string.IsNullOrWhiteSpace(usuario) && !string.IsNullOrWhiteSpace(contrasena))
                {
                    var oUsuario = BLUsuario.Obtener(usuario, true);

                    if (oUsuario != null)
                    {
                        if (oUsuario.Usuario == usuario && Crypto.Desencriptar(oUsuario.Contrasena) == contrasena)
                        {
                            Session.Clear();

                            Session.Add("Matriz", oUsuario);

                            FormsAuthentication.SetAuthCookie(oUsuario.Nombre, false);

                            RedirectToUrl("Area/Entorno/Dashboard.aspx");
                        }
                        else
                        {
                            ModelState.AddModelError("Error", "Su contraseña es incorrecta.");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("Error", string.Format("El usuario {0} no se encuentra registrado.", usuario));
                    }
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(usuario))
                    {
                        ModelState.AddModelError("Error", "Ingrese su usuario");
                    }
                    else
                    {
                        if (string.IsNullOrWhiteSpace(contrasena))
                        {
                            ModelState.AddModelError("Error", "Ingrese su contrasena");
                        }
                    }
                }

                return;
            }

            catch (Exception) {
                return;
            }
        }