
21/05/2004, 15:30
|
| | Fecha de Ingreso: mayo-2004 Ubicación: Sevilla, Spain
Mensajes: 20
Antigüedad: 21 años Puntos: 0 | |
Acceso restringido a parte de la web Hola, yo también soy nuevo en esto, y tenía el mismo problema hace unos días, y esta rutina aunque es algo compleja por la mezcla de ASP con DLL, pero me funciona bien.
FORMULARIO HTML:
<form method="post" action="http://localhost/foropruebas/chequeo.asp">
<input type="text" name="login">
<input type="Password" name="password">
<input type="Submit" name="enviar" value="Enviar">
</form>
------------------------------------------------------------------------
COMPONENTE COM “ACCESO.DLL” (hecho con VB6.0):
ABRE BD, COMPRUEBA TEXTBOX CON LA BD, Y CREA RESULTADO esusuario = true/false
'Declaración explícita de vbles.
Option Explicit
'Declaramos el objeto Scripting Context que se
'empleará para hacer la interfaz con la página
'ASP que utiliza al objeto
Private objSC As ScriptingContext
Private objApplication As Application
Private objResponse As Response
Private objRequest As Request
Private objServer As Server
Private objSession As Session
'Objetos de base de datos
Private objBase As ADODB.Connection
Private objTabla As ADODB.Recordset
'Cuando se arranca la página ASP que crea el objeto COM,
'se inicia el evento OnStartPage
Public Sub OnStartPage(ByVal ContextoScript As ScriptingContext)
Set objSC = ContextoScript
Set objResponse = objSC.Response
Set objApplication = objSC.Application
Set objRequest = objSC.Request
Set objServer = objSC.Server
Set objSession = objSC.Session
'Objetos de base de datos
Set objBase = New ADODB.Connection
objBase.Open "BaseUsers"
End Sub
'Esta funcion indica si el usuario que ha entrado en la
'pagina es correcto o no
Public Function EsUsuario() As Boolean
Dim SQL As String
SQL = "SELECT Count(*) FROM USERS WHERE "
SQL = SQL & "LOGIN = '" & objRequest.Form("login") & "' AND "
SQL = SQL & "PASSWORD = '" & objRequest.Form("password") & "'"
Set objTabla = New ADODB.Recordset
objTabla.Open SQL, objBase, 3, 3
If objTabla(0) = 0 Then
EsUsuario = False
Else
EsUsuario = True
End If
objTabla.Close
Set objTabla = Nothing
End Function
Public Sub OnEndPage()
'Objetos de base de datos
objBase.Close
Set objBase = Nothing
'Destruimos los objetos
Set objResponse = Nothing
Set objApplication = Nothing
Set objRequest = Nothing
Set objServer = Nothing
Set objSession = Nothing
Set objSC = Nothing
End Sub
-----------------------------------------------------------------
“CHEQUEO.ASP” PÁGINA ASP DE LLAMADA A ACCESO.DLL
<%
'Declaracion explicita de variables
Option Explicit
Dim objAcceso
Set objAcceso = Server.CreateObject("Acceso.clsUsuario")
IF objAcceso.EsUsuario Then
response.Cookies("Clave")="true"
response.redirect "http://localhost/foropruebas/miemb1.asp"
'Response.Write "Saludos usuario " & Request.Form("login") & "<br>"
ELSE
response.redirect "http://localhost/foropruebas/miem_error.htm"
'Response.Write Request.Form("login") & " no es un usuario reconocido<br>"
END IF
Set objAcceso = Nothing
%>
---------------------------------------------
Luego en cada página que quieres restringir pones lo siguiente:
<%
if request.cookies("Clave")<>"true" then
response.redirect "http://localhost/foropruebas/miem_error.htm"
end if
%>
Saludos |