| |||
![]() hola, tengo un sitio en cual implemente la variable session funciona super bien, pero lo que necesito ahora es crear perfiles de usuario, algo como que si entra un usurio normal no tenga acceso a algunas paginas y a otras si, y que el administrador tenga acceso full a todo, nose si me explico, pero en si el tema es poder manejar perfiles de diferentes tipos de usuario restringiendo el paso a aquellos que no tengan todos lo privilegios, ojala me puedan ayudar |
| |||
y como hago eso Cita: ??????
Iniciado por gorka_arai Kaixo Jetzona, bonito nick!!! ![]() Puedes construirte una tabla llamada "Usuarios" en tu BD en la que tengas los nombres y contraseñas de todos los usuarios especiales admitidos en tu sistema (incluyendo al administrador). Luego, cuando alguien se loguee en tu sitio haces una búsqueda para ver si es el administrador, un usuario especial o uno normal. Dependiendo de esto, vas redireccionando... |
| ||||
create una tabla USUARIOS con los campos ID_USUARIO,USUARIO,PASSWORD,PRIVILEGIO Una ves que el usuario ingrese por el login creas una variable USUARIO= Session("Usuario")y una PRIVILEGIO = Session("Privilegio") teniendo eso puedes ir verificando en todas las secciones de tu pagina el privilegio del usuario y asi denegarle el acceso o avilitarle el acceso segun corresponda
__________________ Para ayudar en lo que se pueda:Zzz: |
| ||||
si mira tienes tu variable de sesion, por ejemplo creas un include y lo agregas a cada una de tus paginas en el login buscas tu usuario y tu password <% usr=replace(request("usr"),',"") pass=replace(request("pas"),',"") sql= select * from usuarios where user='"&usr&"' and pass=''&pass&"" " 'balbalabla if not rs.eof Session("username")=rs("user") end if 'haces tu consulta a la base y creas tus variables de sesion %> si lo encuentras creas tu variable de sesion p. ej. administrador y tu include quedaria mas o menos asi, este lo pones en tus paginas <% if not (Session("username")="administrador") response.redirect url_de paginas_no_administrador end if %> algo asi, en este caso en las paginas que pongas este include solo el administrador podra verlas, ya qye cualquier otro lo redireccionara a otra pagina, bueno esto de manera muy general y puede que por ahi halla algun errorsillo, ya que es lo que me acuerdo si quieres mas informacion escribeme y te mando el codigo que tengo, lo que pasa es que no lo pongo por que tuve problemas con mi server y lo estan reinstalando. bye. espero y te sirva |
| |||
parece que no me explique muy bien, tratare de hcerlo lo mas claro posible diseñe un sitio con varias paginas, tenfo diferentes niveles de usuario administrador, usuario front, usuario back, etc, estos nivelies o perfiles les permiten ver ciertas paginas, osea no todas, a exepcion del administrador que puede verlas todas, como puedo realizar esto ya que de momento ocupo la variable session y funciona pero todos son administradores ya que puedes estar en todas las paginas y es eso lo que yo quiero evitar |
| ||||
mira tu cuando creas la session(usuario) tb creas la session (Privilegio) y esta ultima session la comparas en cada pagina a la que desees entrar mira yo aca va un ejemplo que es para la pagina despues de un logeo Cita: espero que te sirva de algo<% Tipo_Usuario=Request.QueryString("Tipo") response.write "<body leftmargin=""0"" topmargin=""0"" marginwidth=""0"" marginheight=""0"">" response.write "<table width=""995"" border=""0"" align=""center"">" response.write " <tr>" response.write " <td> <div align=""right"">" response.write " <table width=""994%"" border=""0"" align=""left"">" response.write " <tr> " response.write " <td width=""18%""> <div align=""left"">" Response.Write "<font color=#0000FF size=2 face=Trebuchet MS>Bienvenido <B>"& Session("USUARIO") &"</B></font>" Response.Write"<Br><a href=Fin.asp><font color=#FF0000 size=2 face=Trebuchet MS><strong>cerrar sesion</strong></font></a>" response.write " </td>" response.write " <td width=""65%""> </td>" response.write " <td width=""17%"">" Response.Write ("<div align= right><strong><font size=1 face=Trebuchet MS>Usuarios Conectados ") application.lock response.write application("num_usuarios") application.unlock Response.Write ("</font></strong></div>") response.write " </td>" response.write " </tr>" response.write " </table>" response.write " " response.write " </div>" response.write " <div align=""left""></div></td>" response.write " </tr>" response.write " <tr>" response.write " <td bgcolor=""#CCCCCC"">" response.write " <div align=""center""><font color=""#0000FF"" size=""2"" face=""Trebuchet MS""><strong>" IF Session ("USUARIO") = "" Then response.Redirect("Inicio.asp?Msj= No te has Logeaso") End If If Tipo_Usuario = "ADMIN" Then response.write " <a href=""INGRESO/menuI.asp"" target=""ingreso"">Ingreso</a> " response.write " <a href=""MODIFICACION/menuM.asp"" target=""ingreso"">| Modificacion </a> " response.write " <a href=""ELIMINACION/menuE.asp"" target=""ingreso"">| Eliminacion </a> " response.write " <a href=""CONSULTAS/menuC.asp"" target=""ingreso"">| Consultas </a> " response.write " <a href=""RESPALDO/Respalda.asp"" target=""ingreso""> | Respaldar </a> " ElseIf Tipo_Usuario="USUARIO_A" Then response.write " <a href=""INGRESO/menuI.asp"" target=""ingreso"">Ingreso</a> " response.write " <a href=""MODIFICACION/menuM.asp"" target=""ingreso"">| Modificacion </a> " response.write " <a href=""CONSULTAS/menuC.asp"" target=""ingreso"">| Consultas </a> " ElseIf Tipo_Usuario="USUARIO_B" Then response.write " <a href=""INGRESO/menuI.asp"" target=""ingreso"">Ingreso</a> " response.write " <a href=""CONSULTAS/menuC.asp"" target=""ingreso"">| Consultas </a> " ElseIf Tipo_Usuario="USUARIO_C" Then response.write " <a href=""CONSULTAS/menuC.asp"" target=""ingreso"">Consultas </a> " End If response.write " </strong></font></div></td>" response.write " </tr>" response.write " <tr>" response.write " <td><iframe name=""ingreso"" src=""blanco.asp"" width=""980"" height=""500"" frameborder=""0"" scrolling=""yes""></iframe></td>" response.write " </tr>" response.write "</table>" %> </p> tb si deseas blokear el acceso puedes consultar en cada pagina interior EJ <% if Session(Tipo) <> "ADMIN" Then Response.Redirect "AccessDenied.asp" End If Else If Session(Tipo) = "ADMIN" Then ' muestras el contenido de la pagina end If %>
__________________ Para ayudar en lo que se pueda:Zzz: |
| ||||
Lo puedes hacer de varias formas una es que tengas un directorio para cada tipo de usuario y asi su ambito sera dentro de esa carpeta ,otra como lo maneja windows de que a cada archivo le da permisos a los usuarios que al parecer es mucho mas fácil cuando tienes pocas paginas y como lo manejo yo que a cada usuario le asignas archivos Mira yo como lo tengo es asi Tengo una base de datos y una tabla en la cual defino usuarios, otra donde defino grupos, otra donde defino programas(en este caso es paginas y direcorios a los cuales tendra acceso) y por ultimo otra tabla que se llama especiales, esto es por que algunos usuarios de algun grupo puede ver paginas de otro grupo pero solo algunas, Ahorita mi server sigue abajo pero a grandes razgos es asi bueno lo que haces es que te logeas con tu usr, y tu password, creas tu sesion preguntas por la pagina en la que te encuentras esto lo haces con las variables de servidor, una vez que tienes la pagina que haces una consulta a tu base, preguntando por los programas a los que tiene permiso el usuario, despues solo comparas si alguno de ellos es igual a la pagina que solicito,si si le muestras la pagina en caso contrario mandas un response redirec. es una forma mas complicada pero cuando requieres permisos especificos por pagina es muy bueno. Espero y te de una idea para lo que quires hacer Bye |