Foros del Web » Programando para Internet » ASP Clásico »

Utilizar desde asp una funcion de una dll

Estas en el tema de Utilizar desde asp una funcion de una dll en el foro de ASP Clásico en Foros del Web. Hola a todos, Tengo que pasar un código .net a asp y no encuentro la manera. Primero se trata de declarar en asp dos tipo ...
  #1 (permalink)  
Antiguo 18/03/2013, 03:02
 
Fecha de Ingreso: marzo-2013
Ubicación: Andalucia
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Utilizar desde asp una funcion de una dll

Hola a todos,

Tengo que pasar un código .net a asp y no encuentro la manera.

Primero se trata de declarar en asp dos tipo de datos, que en .net serían enumeraciones del tipo entero.
Segundo, declarar una función de una dll, para posteriormente llamarla desde código asp.
Las enumeraciones serían algo como:

Public Enum LogonType As Integer
LOGON32_LOGON_INTERACTIVE = 2
LOGON32_LOGON_NETWORK = 3
LOGON32_LOGON_BATCH = 4
LOGON32_LOGON_SERVICE = 5
LOGON32_LOGON_NEW_CREDENTIALS = 9
End Enum

y la declaración de la dll para luego poder llamarla sería:
'DLLImports
Declare Auto Function LogonUser Lib "advapi32.dll" (ByVal lpszUsername As String, _
ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As LogonType, _
ByVal dwLogonProvider As LogonProvider, ByRef phToken As IntPtr) As Integer


¿Como puedo poner esto en asp?

Gracias!!!
  #2 (permalink)  
Antiguo 18/03/2013, 09:47
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: Utilizar desde asp una funcion de una dll



un poquitin de lectura aqui
http://www.tizag.com/aspTutorial/aspDLL.php

del cual dice..

registrar el DLL en el servidor
Permisos para el usuario IIS para utilizar este DLL
y en tu ASP

algo como esto
Código ASP:
Ver original
  1. <%
  2. 'Note this is example code, it will not work
  3. '   unless you create a myDLL, myClass, and a myMethod
  4. Dim myObject
  5. myObject = Server.CreateObject("myDLL.myClass")
  6. myObject.myMethod("something")
  7. myObject = nothing
  8. %>

saludos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 18/03/2013, 10:12
 
Fecha de Ingreso: marzo-2013
Ubicación: Andalucia
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Utilizar desde asp una funcion de una dll

Hola Shiryu_Libra,

Esa es una de las páginas que había consultado y no he conseguido solucionarlo.
La dll la he hecho yo, la he conseguido de http://p2p.wrox.com/classic-asp-basics/77007-solution-impersonation-classic-asp.html.
Por lo visto no se registra con el regsvr32, sino con el comando regasm fichero.dll /tlb, que aparentemente me lo hace bien. Segun lo leido es un ensamblado.
La dll la he puesto en una carpeta del servidor y los dos usuarios que tienen que ver con el IIS tienen permiso de lectura y ejecución.
Mi código llega hasta myObject = Server.CreateObject("myDLL.myClass") y por ahí no pasa.

Tengo un w2003 server 64 bits y el .net framework 2,3,3.5 y 4 instalados en sus versiones de 32 y 64 bits

No me da ningún tipo de error, se ve que se sale del código al llegar a ese punto.
Esta es mi función:
function usuarioYPassDM (strUsuario, strClave)
Dim objLogon, resultado
response.write("<SCRIPT LANGUAGE='JavaScript'>alert('empezamos ');</SCRIPT>")
Set objLogon = Server.CreateObject("Impersonate.UserLogon")
response.write("<SCRIPT LANGUAGE='JavaScript'>alert('Objeto creado');</SCRIPT>")
objLogon.Logon "prueba", "pass", "dm"
objLogon.Logoff
response.write("<SCRIPT LANGUAGE='JavaScript'>alert('dll abierta " & resultado & "');</SCRIPT>")
usuarioYPassDM=1
end function
¿alguna ayuda más?

Cita:
Iniciado por Shiryu_Libra Ver Mensaje


un poquitin de lectura aqui
[url]http://www.tizag.com/aspTutorial/aspDLL.php[/url]

del cual dice..

registrar el DLL en el servidor
Permisos para el usuario IIS para utilizar este DLL
y en tu ASP

algo como esto
Código ASP:
Ver original
  1. <%
  2. 'Note this is example code, it will not work
  3. '   unless you create a myDLL, myClass, and a myMethod
  4. Dim myObject
  5. myObject = Server.CreateObject("myDLL.myClass")
  6. myObject.myMethod("something")
  7. myObject = nothing
  8. %>

saludos
  #4 (permalink)  
Antiguo 18/03/2013, 12:23
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: Utilizar desde asp una funcion de una dll



ok, veamos si este pequeño tutorial te pudiera orientar mas sobre tu duda

http://www.macronimous.com/resources...asp_vb_dll.asp

saludos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 19/03/2013, 02:04
 
Fecha de Ingreso: marzo-2013
Ubicación: Andalucia
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Utilizar desde asp una funcion de una dll

Hola,

Básicamente lo que dice en ese segundo tutorial es lo que hago.
Lo único que varía es que al parecer, lo que yo hago es un ensamblado y se registra con un comando distinto del regsvr32 (regasm) pero cuando lo hago me dice que lo ha registrado correctamente.
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>rega sm D:\ServWeb\dllLogado\Impersonate.dll /tlb:Impersonate.tlb codebase
Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.

Types registered successfully
Assembly exported to 'D:\ServWeb\dllLogado\Impersonate.tlb', and the type library was registered successfully

Si lo hago con el regsvr32:
Impersonate.dll was loaded, but the dllRegisterServer entry point was not found. This file can not be registered.


En la web que indique antes lo hacen de la primera forma y supuestamente les funciona.

Saludos

Etiquetas: asp, dll, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:48.