Hola lista. Tengo una duda más bien teórica referente a la programación de aplicaciones de escritorio, y es que llevo mucho tiempo desarrollando aplicaciones Web, por lo tanto, algunos conceptos de los primeros se me van.
Si yo quisiera programar una aplicación dividida en las clásicas 3 capas (presentación, negocio y datos), y quisiese distribuirla en diferentes niveles físicos (un cliente liviano en el pc de los usuarios, y las lógicas de negocio y datos, así como la base de datos en un equipo del tipo servidor) ¿De que manera puede establecer una especie de control de acceso o mayor seguridad para asegurarme de que el cliente se haya logueado primeramente?
Cuando yo programaba aplicaciones de escritorio usaba sesiones, pero toda la lógica de programación, a pesar de estar separada por capas, a nivel físico, estaba almacenada en una única apliación. Lo que, según sé, se denomina un cliente pesado. Esta aplicación, dentro de sus líbrerías, tenía la información de la base de datos(ip, puerto, nombre, password). Y la seguridad la controlaba con sesiones. Lo que no me gusta de esto es que toda esto se almacena en un único lugar, el escritorio del cliente. Lo único que quedaba en el (los) servidor es la base de datos.
A mí, lo que me interesaría, es desarrollar una aplicación en el servidor que esté constantemente escuchando y resolviendo peticiones . Es decir, un intermediario entre el cliente y la base de datos. Lo que no sabría es como validar al cliente en el servidor, a través de la aplicación intermediaria.¿Es seguro dejar este proceso de validación en el cliente?
Cuando yo programo apliaciones Web me valgo del trabajo con sessiones que pone a disposición el lenguaje del servidor (PHP, Python +Django, etc.) los que en base a cookies y validaciones desde el servidor, entregan más seguridad. En estos casos lo único que el cliente necesita es un cliente liviano (el browser). Pero aplicar esto mismo en soluciones de escritorio ... no veo como. Espero puedan orientarme.
Saludos.