Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2008, 11:16
kantautorea
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Caos en autentificacion

Tengo que hacer un proyecto que consiste en una página web para gestionar pisos para estudiantes. La estoy haciendo en VS2005 con ASP.net y Visual Basic. La base de datos está hecha en SQL Server 2005. La cuestión es que llevo “semanas” buscando la mejor forma de hacer la autentificación rebuscando en libros, tutoriales y todo lo que veo por Internet pero no consigo encontrar lo que busco. Os explico:

Tengo dos tipos de usuarios: alumno y anunciante. El alumno podrá acceder tanto a la zona de consultas como a la de registro de anuncios, mientras el anunciantes solo a la zona de registro de anuncios.
He creado los roles Alumno y Anunciante, y he creado las carpetas para ellos.
El alumno tiene 3 campos, DNI y Password (que de antemano los tendría almacenados en alguna tabla, en principio en las tablas de aspnet_users y aspnet_membership, si no me corrigen para mejorarlo) y Nick (que se insertará junto con los dos anteriores en la tabla Alumno la primera vez que acceda a la página). El Anunciante tiene los campos DNI, Password y Nick que se insertarán en la tabla Anunciante al registrarse.

Esta era mi idea de autentificación: si el DNI introducido está dentro de la tabla “aspnet_users” en el campo “Username” es un Alumno, entonces comprueba el password introducido en la tabla “aspnet_Membership” en el campo “Password”, y si es correcto le pasa a la zona de Alumno (antes comprueba también si DNI está en la tabla Alumno por si es la primera vez que accede).
Si el DNI no está en la tabla “aspnet_users” es que no es Alumno, entonces busca en la tabla “Anunciante” en el campo “DNI”, y si está será “Anunciante”, pero también comprobará el Password si también es correcto en el campo “Password” de la misma tabla; en el caso correcto pasará a la zona de Anunciante. Si no está el DNI en ninguna de las dos tablas (aspnet_users y Anunciante) tendrá que registrarse como Anunciante.
La primera vez que entra un Alumno después de introducir los datos y confirmar que son correctos le pedirá introducir un “Nick” que usará como nombre en sus movimientos. Cuando el Alumno introduce el “Nick” se insertán todos los datos en la tabla “Alumno”, con lo que la segunda vez si ve que está el DNI en las dos tablas le pasará directamente a la zona de Alumno.
Una de mis dudas es si utilizo el cuadro “Login” de VS (al ser algo ya definido), después de aceptar los datos, me pasa directamente a otra pantalla, ¿no? ¿Puedo hacer que me pida introducir el campo “Nick” antes de pasar de página?

Igual estoy complicando todo bastante, no lo se, seguro que se os ocurre alguna forma de hacerlo todo sin tanto movimiento de tablas. Os agradecería alguna ayuda sobre como es la mejor forma de hacer todo para poder salir de este gran bache. Muchas gracias.