Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/01/2008, 09:19
Diana
 
Fecha de Ingreso: febrero-2002
Mensajes: 9
Antigüedad: 22 años, 2 meses
Puntos: 0
De acuerdo Re: Usar dll en ASP

Hola, hace un buen de tiempo q tuve ese problema pero aun lo recuerdo y tengo el codigo de como yo lo solucione, espero te sea de utilidad mis sugerencias.
Mira Recuerdo q en la maquina donde tengo el servidor de IIS con mi sitio web le agregue un directorio virtual a la carpeta donde estan los archivos remotos y di los permisos necesarios, ademas tambien recuerdo que en mi site agregue un codigo para autenticacion, aqui telo anexo:
_______________________
cabecera:
____________________________
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;
using System.IO;
using System.Threading;
using System.Security.Permissions;
using System.Data.OleDb;
using System.Web.Security;
using System.Security.Principal;
using System.Net;
_________________________-
Variables:
___________________________
private const int LOGON32_LOGON_NETWORK = 3;
private const int LOGON32_PROVIDER_DEFAULT = 0;
private const int LOGON32_LOGON_INTERACTIVE=2;
private System.Security.Principal.WindowsImpersonationCont ext impersonationContext;
private WindowsImpersonationContext wic = null;
private WindowsIdentity currentIdentity = null;
________________________
Funciones
________________________
private bool impersonateValidUser(String userName, String domain, String password)
{
WindowsIdentity tempWindowsIdentity;
IntPtr token = IntPtr.Zero;
IntPtr tokenDuplicate = IntPtr.Zero;

if(RevertToSelf())
{
if(LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, ref token) != 0)
{
if(DuplicateToken(token, 2, ref tokenDuplicate) != 0)
{
tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);
impersonationContext = tempWindowsIdentity.Impersonate();
if (impersonationContext != null)
{
CloseHandle(token);
CloseHandle(tokenDuplicate);
return true;
}
}
}
}
if(token!= IntPtr.Zero)
CloseHandle(token);
if(tokenDuplicate!=IntPtr.Zero)
CloseHandle(tokenDuplicate);
return false;
}
public void Undo()
{
// Impersonate back to original identity
wic.Undo();
Thread.CurrentPrincipal = new WindowsPrincipal(currentIdentity);
currentIdentity.Impersonate();
}

______________________--
Llamada a la funcion:
________________________
impersonateValidUser("fotosistema", "172.16.0.67", "fotosistema");

__________________
El usuario q le pasas a la funcion debe existir en el equipo remoto para q puedas ser autenticado y claro tambien en tu equipo donde tienes el IIS, yo le otrogue permisos suficientes como para q me dejara manejar por completo los archivos pero ya tu puedes asignarle los permisos que requieras al crear el usuario.

Espero te sea util,
HASTA LUEGO!!!