> Faqs > login con usuario contraseña y rol (ASP y Access)

login con usuario contraseña y rol (ASP y Access)

Cordial saludo, tengo una situación particular con lo siguiente:

Tengo un codigo ASP que estoy utilizando para acceder mediante un login a una pagina web con acceso restringido usuario y clave, pero tambien quiero que se verifique, que siendo administrador para que acceda a la pagina principal(SICAAF-Sistema) que he creado para los administradores y siendo usuario acceda a la pagina principal (SICAAF-Sistema-User) para los estudiantes.

Los datos son captados de un formulario login el cual son comparados en una DB access.

al momento de hacer el registro de los estudiantes en la DB Access, desde los formularios respectivos automaticamente se inserta el valor de "USUARIO" en el campo de nivelUsuario y al registrar un empleado se inserta el valor"ADMINISTRADOR" en el campo nivelUsuario. en la tabla tbUsuarios de la DB.

en el codigo siguiente utilizo como valores fijos en las variables, ya que asi estarán en la DB.

  • SeguridadAdmin="ADMINISTRADOR" y
  • SeguridadUser="USUARIO"

espero haberme explicado con claridad para que me puedan ayudar en este caso.

el codigo funciona muy bien, solo falta lo que les mencione al principio, que acceda auna u otra pagina siendo el caso de ser administrador o usuario.

el codigo es el siguiente;

<%@LANGUAGE="VBSCRIPT"%>
<%

Dim idUsuarioRS, Conexion
Dim RS, sql
Dim Usuario, Password
Dim Nombres, Apellidos

Usuario=Request.Form("txtUsuario")
Password=Request.Form("txtPassword")
SeguridadAdmin="ADMINISTRADOR"
SeguridadUser="USUARIO"

If Request.Form("txtUsuario") = "" OR Request.Form("txtPassword") = "" then
Response.Redirect("Login-error.html")

Else


Set Conexion=Server.CreateObject("ADODB.Connection")

Conexion.ConnectionString= "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" &Server.Mappath("../DataBase/SICAAF-DataBase.mdb")
Conexion.Open

sql= "Select * From tbUsuarios Where usuario='"& Usuario &"'"


Set RS=Server.CreateObject("ADODB.Recordset")
RS.Open sql, Conexion

If RS.BOF And RS.EOF Then
Response.Redirect("Login-error.html")


ElseIf RS.Fields("passwordUsuario") = Password then
session("Logueado")="si"

%>
<script type="text/javascript">
window.location.replace("SICAAF-Sistema.asp?idUsuarioRS=<%=RS("idUsuario")%>");
</script>

<%

Else

Response.Redirect("Login-error.html")

end if


'Se cierran el Recordset y la conexión'
RS.Close
Conexion.Close
Set RS = Nothing
Set Conexion = Nothing

End If
%>

Respuestas

ufff hace mucho que no toco ASP y menos access... a día de hoy no creo que sean muy recomendables esas tecnologías.

Lo que veo es que en tu lógica tendrás que añadir algún condicional extra para manejar los usuarios de los distitos roles. No parece complejo.

El código no te lo puedo dar porque es algo muy expecífico de tu solución y que tendrás que pensar tú mismo. De todos modos permíteme que te aconseje.

  • Estructura tu código: Crea una lógica comprensible a simple vista y que si empiezas a meter más ramas de lógica tenderrá al caos.
  • Crea funciones que engloben las funcionalidades y funciones que se apoyen en otras funciones
  • Separa el código de acceso a los datos de manera que esté aislado. invoca esas funciones para hacr las operativas que solo implican accceso a datos
  • mantén un estilo más consistente, espaciados, sangrados, etc. Eso ayudará a que tu código se vea mejor y serás capaz de ser más productivo.

Espero que todo esto te ayude a ser mejor programador.

Marcos
172 2 15 11