PDA

Ver la Versión Completa : Como hacer que mi aplicación acceda a la red sin que pida la contraseña al usuario


Nbull
17-01-2006, 10:02:16
Hola, tengo una aplicación programada en delphi 7 que se instalará en ordenadores con XP, esta aplicación debe acceder a una carpeta compartida de un servidor Nt 4. Yo se la contraseña para acceder al servidor, pero lo que quiero es que los usuarios accedan a esa carpeta desde mi aplicación sin saber la contraseña.

Es decir la impresión de ellos sera que estan trabajando localmente, sin embargo, mi aplicación cogerá datos de esa carpeta.

Que procedimiento tengo que crear para que cuando mi aplicación acceda al servidor se autentifique en este sin que los usuarios se den cuenta.

Otra opción que he pensado es que al arrancarse la aplicación se loguee en el servidor y cuando esta se cierre se desconecte ¿es esto posible?

¿Como puedo implementar esto?

Un saludo a tod@s y gracias.

delphi.com.ar
17-01-2006, 13:28:19
¿esto?

var
hToken: Cardinal;
begin
Win32Check(LogonUser('usuario', nil, 'password', LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, hToken));
try
{ Tus Rutinas }
finally
CloseHandle(hToken);
end;


Saludos!

OSKR
17-01-2006, 17:43:42
delphi.com.ar ........Mis respetos!!!, esto disminuirá el tamaño en líneas del código cuando creo servicios..........Ahora si estoy impresionado :p


Gracias

Nbull
18-01-2006, 09:31:41
Hola Delphi.com.ar, he probado el código que me dijiste y no me loguea en el servidor la variable(hToken: Cardinal) la he creado Public y la linea de código:

procedure TFGestion.FormCreate(Sender: TObject);
begin
//Me logueo en el servidor
//
Win32Check(LogonUser('archivo', nil, 'archivo', LOGON32_LOGON_NETWORK,
LOGON32_PROVIDER_DEFAULT, hToken));

me la he creado en el FormCreate de mi aplicación, luego he puesto el CloseHandle en el FormClose de mi aplicación,pero, no me loguea en el servidor.

He leido que LogonUser te loguea de forma local, pero, no se si ese puede ser mi problema.O es que no se puede implementar como lo hice.:confused:

De todos modos muchas gracias.

delphi.com.ar
18-01-2006, 12:51:27
¿Cómo accedes despues a los archivos de la otra terminal?... ¿Trabajas bajo un Dominio?

Nbull
24-01-2006, 09:46:58
Perdona Federico, por tardar tanto en responderte, pero, es que he estado muy liado. No trabajo sobre dominio sino sobre grupo de trabajo, y lo que quiero es acceder a un archivo que ha de estar en una carpeta del servidor, el usuario no se ha de enterar que ha entrado a esa carpeta ni que esta está en el servidor.

El problema es que cuando arranco mi aplicación lo primero que hace es ir a recoger ese archivo al servidor, y me da un error de que el archivo esta en uso o no tengo privilegios en el servidor.(Mi compañero me dice que ha compartido esa carpeta y que tengo todos los privilegios para acceder)

Si me logueo en el servidor desde mis sitios de red arranco la aplicación sin problemas, pero claro yo no quiero que todos los usuarios puedan acceder al servidor como si tal cosa, por eso, pensé en loguearme en el servidor al iniciar mi aplicación sin que el usuario se diese cuenta, y deesconectarme al cerrar mi aplicación.Pero no se si esta es la solución idonea o habría otra forma de solucionar el problema.

Gracias y un saludo.

CHiCoLiTa
24-01-2006, 19:34:55
Por lo que pareces decir, las cuentas de los usuarios no existen en el servidor, por lo que siempre te pide el usuario y la contraseña

Por que no creas las cuantas de los usuarios que tienen la aplicacion en el servidor? Lo unico que deberias conocer sus contraseñas para que sean iguales

vsalomons
01-02-2007, 17:47:21
Yo tengo exactamente el mismo problema q nbull
al parecer no importa q string mandes como parametro de dominio siempre lo intenta en la maquina local...

Te agradeceria algun comentario nbull pues esto veo q lo hiciste hace un año
salu2

delphi.com.ar
02-02-2007, 16:49:38
El problema es que cuando arranco mi aplicación lo primero que hace es ir a recoger ese archivo al servidor, y me da un error de que el archivo esta en uso o no tengo privilegios en el servidor.(Mi compañero me dice que ha compartido esa carpeta y que tengo todos los privilegios para acceder)
Yo primero intentaría creer el mensaje de error, y observar si no estoy abriendo el archivo en forma exclusiva. ¿Cómo estas accediendo al archivo? (Muestra código por favor)