Manejo de Archivos Excel y PDF

18/11/2003 - 16:10 por Daniel Villa | Informe spam
Hola Grupo:

Estoy trabajando en un proyecto de Intranet, en donde cada área me esta
enviando su información, que va ser integrada en dicha Intranet. Esta
información viene en algunos casos en documentos de Excel y PDF. Por
considerarse información de uso exclusivo, en donde no cualquier persona
tiene acceso, estoy restringiendo esta información, en donde previamente
cuando se quiera hacer link, muestra una ventana en donde se introduce su
login y password. Sin embargo cuando este link esta direccionado a un
documento de Excel o PDF, si se conoce el URL, y toda la trayectoria, puede
introducirse directamente y saltarse la ventana de Acceso, en donde el
usuario debe introducir su login y contraseña.

Una de las formas para evitar esto y cubrir ese "gran hueco de seguridad",
era proteger los documentos, asignandoles una contraseña, pero.. esto no
es viable ya que la intención, es que esto sea manejado en una BD, que
contenga la lista de los usuarios registrados y con su correspondiente
password y no tenga que ser manejado de otra manera (protegiendo los
documentos).

Es por ello que les escribo para saber si es posible conocer otras
alternativas ante esta problemática o donde puedo apoyarme para obtener
información sobre esto.

Salu2 :-)

Preguntas similare

Leer las respuestas

#1 Sashka
18/11/2003 - 18:32 | Informe spam
Hola Daniel eso yo lo soluciono poniendo los archivos en una carpeta
fuera de la ruta del site... por ejemplo si tengo ésta estructura...

Localhost
Sitio1 'carpeta no compartida en internet
ArchivosPrivados ' carpeta compartida en internet como
ARCH1
www 'carpeta compartida en internet como
MiSitio

Para entrar a mi sitio escribo... localhost/misitio/Default.asp
Pero los usuarios no tienen porque saber que la ruta para bajar un archivo
es localhost/arch1/elarchivo.xls
Por ejemplo
tienes en una página un link así:
<A href="baja.asp?archivo.xls">xxxxx</A>

El código de baja.asp es así:
<script language="JavaScript">
<!--
function detente() {
if (location.search) {
var xx = location.search
xx= xx.replace("?", "")
document.location.replace("Bajando.asp?sURL=../ArchivosPrivados/" + xx)
}
}
//-->
</script>
<html>
<body onload="detente()">
</body>
</HTML>

Y el código de bajando.asp

<%
If Request.Form("sURL") = "" then
call getBinaryFile(Request.QueryString("sURL"))
Else
call getBinaryFile(Request.Form("sURL"))
End If

Function getBinaryFile(strFilePath)
Dim TypeBinary, oStream, strFileName, strRootFile, binFile, nomb, s

if len(strFilePath)>0 then

Set oStream = Server.CreateObject("ADODB.Stream")

strFileName = split(strFilePath,"/")(ubound(split(strFilePath,"/")))

nomb = strFileName
strRootFile = Server.MapPath(strFilePath)

TypeBinary = 1
oStream.Open
oStream.Type = TypeBinary
oStream.LoadFromFile strRootFile
binFile = oStream.read

oStream.Flush
if oStream.State = 1 then oStream.Close
Set oStream = Nothing

Response.Buffer = true
Response.Clear
Response.AddHeader "content-disposition", "attachment; filename=" & nomb
Response.ContentType = "application/" &
split(nomb,".")(ubound(split(nomb,".")))
Response.BinaryWrite binFile

end if

End Function

%>

Espero te sirva...

Sashka





"Daniel Villa" escribió en el
mensaje news:
Hola Grupo:

Estoy trabajando en un proyecto de Intranet, en donde cada área me esta
enviando su información, que va ser integrada en dicha Intranet. Esta
información viene en algunos casos en documentos de Excel y PDF. Por
considerarse información de uso exclusivo, en donde no cualquier persona
tiene acceso, estoy restringiendo esta información, en donde previamente
cuando se quiera hacer link, muestra una ventana en donde se introduce su
login y password. Sin embargo cuando este link esta direccionado a un
documento de Excel o PDF, si se conoce el URL, y toda la trayectoria,


puede
introducirse directamente y saltarse la ventana de Acceso, en donde el
usuario debe introducir su login y contraseña.

Una de las formas para evitar esto y cubrir ese "gran hueco de seguridad",
era proteger los documentos, asignandoles una contraseña, pero.. esto


no
es viable ya que la intención, es que esto sea manejado en una BD, que
contenga la lista de los usuarios registrados y con su correspondiente
password y no tenga que ser manejado de otra manera (protegiendo los
documentos).

Es por ello que les escribo para saber si es posible conocer otras
alternativas ante esta problemática o donde puedo apoyarme para obtener
información sobre esto.

Salu2 :-)


Respuesta Responder a este mensaje
#2 Daniel Villa
18/11/2003 - 19:36 | Informe spam
Hola Sashka:

Muchas gracias, dejame estudiar el ejemplo que me proporcionaste muy
amablemente. Me parece y creo estar seguro, que realmente es lo que necesito
para manejarlo en mis paginas.

Te aviso por este medio, si tengo alguna duda,

Salu2 :-)


"Sashka" escribió en el mensaje
news:
Hola Daniel eso yo lo soluciono poniendo los archivos en una carpeta
fuera de la ruta del site... por ejemplo si tengo ésta estructura...

Localhost
Sitio1 'carpeta no compartida en internet
ArchivosPrivados ' carpeta compartida en internet como
ARCH1
www 'carpeta compartida en internet


como
MiSitio

Para entrar a mi sitio escribo... localhost/misitio/Default.asp
Pero los usuarios no tienen porque saber que la ruta para bajar un archivo
es localhost/arch1/elarchivo.xls
Por ejemplo
tienes en una página un link así:
<A href="baja.asp?archivo.xls">xxxxx</A>

El código de baja.asp es así:
<script language="JavaScript">
<!--
function detente() {
if (location.search) {
var xx = location.search
xx= xx.replace("?", "")
document.location.replace("Bajando.asp?sURL=../ArchivosPrivados/" + xx)
}
}
//-->
</script>
<html>
<body onload="detente()">
</body>
</HTML>

Y el código de bajando.asp

<%
If Request.Form("sURL") = "" then
call getBinaryFile(Request.QueryString("sURL"))
Else
call getBinaryFile(Request.Form("sURL"))
End If

Function getBinaryFile(strFilePath)
Dim TypeBinary, oStream, strFileName, strRootFile, binFile, nomb, s

if len(strFilePath)>0 then

Set oStream = Server.CreateObject("ADODB.Stream")

strFileName = split(strFilePath,"/")(ubound(split(strFilePath,"/")))

nomb = strFileName
strRootFile = Server.MapPath(strFilePath)

TypeBinary = 1
oStream.Open
oStream.Type = TypeBinary
oStream.LoadFromFile strRootFile
binFile = oStream.read

oStream.Flush
if oStream.State = 1 then oStream.Close
Set oStream = Nothing

Response.Buffer = true
Response.Clear
Response.AddHeader "content-disposition", "attachment; filename=" & nomb
Response.ContentType = "application/" &
split(nomb,".")(ubound(split(nomb,".")))
Response.BinaryWrite binFile

end if

End Function

%>

Espero te sirva...

Sashka





"Daniel Villa" escribió en el
mensaje news:
> Hola Grupo:
>
> Estoy trabajando en un proyecto de Intranet, en donde cada área me esta
> enviando su información, que va ser integrada en dicha Intranet. Esta
> información viene en algunos casos en documentos de Excel y PDF. Por
> considerarse información de uso exclusivo, en donde no cualquier persona
> tiene acceso, estoy restringiendo esta información, en donde previamente
> cuando se quiera hacer link, muestra una ventana en donde se introduce


su
> login y password. Sin embargo cuando este link esta direccionado a un
> documento de Excel o PDF, si se conoce el URL, y toda la trayectoria,
puede
> introducirse directamente y saltarse la ventana de Acceso, en donde el
> usuario debe introducir su login y contraseña.
>
> Una de las formas para evitar esto y cubrir ese "gran hueco de


seguridad",
> era proteger los documentos, asignandoles una contraseña, pero..


esto
no
> es viable ya que la intención, es que esto sea manejado en una BD, que
> contenga la lista de los usuarios registrados y con su correspondiente
> password y no tenga que ser manejado de otra manera (protegiendo los
> documentos).
>
> Es por ello que les escribo para saber si es posible conocer otras
> alternativas ante esta problemática o donde puedo apoyarme para obtener
> información sobre esto.
>
> Salu2 :-)
>
>


Respuesta Responder a este mensaje
#3 Sashka
18/11/2003 - 19:40 | Informe spam
A tus órdenes... :))

Sashka

"Daniel Villa" escribió en el
mensaje news:
Hola Sashka:

Muchas gracias, dejame estudiar el ejemplo que me proporcionaste muy
amablemente. Me parece y creo estar seguro, que realmente es lo que


necesito
para manejarlo en mis paginas.

Te aviso por este medio, si tengo alguna duda,

Salu2 :-)


"Sashka" escribió en el mensaje
news:
> Hola Daniel eso yo lo soluciono poniendo los archivos en una carpeta
> fuera de la ruta del site... por ejemplo si tengo ésta estructura...
>
> Localhost
> Sitio1 'carpeta no compartida en internet
> ArchivosPrivados ' carpeta compartida en internet como
> ARCH1
> www 'carpeta compartida en internet
como
> MiSitio
>
> Para entrar a mi sitio escribo... localhost/misitio/Default.asp
> Pero los usuarios no tienen porque saber que la ruta para bajar un


archivo
> es localhost/arch1/elarchivo.xls
> Por ejemplo
> tienes en una página un link así:
> <A href="baja.asp?archivo.xls">xxxxx</A>
>
> El código de baja.asp es así:
> <script language="JavaScript">
> <!--
> function detente() {
> if (location.search) {
> var xx = location.search
> xx= xx.replace("?", "")
> document.location.replace("Bajando.asp?sURL=../ArchivosPrivados/" + xx)
> }
> }
> //-->
> </script>
> <html>
> <body onload="detente()">
> </body>
> </HTML>
>
> Y el código de bajando.asp
>
> <%
> If Request.Form("sURL") = "" then
> call getBinaryFile(Request.QueryString("sURL"))
> Else
> call getBinaryFile(Request.Form("sURL"))
> End If
>
> Function getBinaryFile(strFilePath)
> Dim TypeBinary, oStream, strFileName, strRootFile, binFile, nomb, s
>
> if len(strFilePath)>0 then
>
> Set oStream = Server.CreateObject("ADODB.Stream")
>
> strFileName = split(strFilePath,"/")(ubound(split(strFilePath,"/")))
>
> nomb = strFileName
> strRootFile = Server.MapPath(strFilePath)
>
> TypeBinary = 1
> oStream.Open
> oStream.Type = TypeBinary
> oStream.LoadFromFile strRootFile
> binFile = oStream.read
>
> oStream.Flush
> if oStream.State = 1 then oStream.Close
> Set oStream = Nothing
>
> Response.Buffer = true
> Response.Clear
> Response.AddHeader "content-disposition", "attachment; filename=" &


nomb
> Response.ContentType = "application/" &
> split(nomb,".")(ubound(split(nomb,".")))
> Response.BinaryWrite binFile
>
> end if
>
> End Function
>
> %>
>
> Espero te sirva...
>
> Sashka
>
>
>
>
>
> "Daniel Villa" escribió en el
> mensaje news:
> > Hola Grupo:
> >
> > Estoy trabajando en un proyecto de Intranet, en donde cada área me


esta
> > enviando su información, que va ser integrada en dicha Intranet. Esta
> > información viene en algunos casos en documentos de Excel y PDF. Por
> > considerarse información de uso exclusivo, en donde no cualquier


persona
> > tiene acceso, estoy restringiendo esta información, en donde


previamente
> > cuando se quiera hacer link, muestra una ventana en donde se introduce
su
> > login y password. Sin embargo cuando este link esta direccionado a un
> > documento de Excel o PDF, si se conoce el URL, y toda la trayectoria,
> puede
> > introducirse directamente y saltarse la ventana de Acceso, en donde el
> > usuario debe introducir su login y contraseña.
> >
> > Una de las formas para evitar esto y cubrir ese "gran hueco de
seguridad",
> > era proteger los documentos, asignandoles una contraseña, pero..
esto
> no
> > es viable ya que la intención, es que esto sea manejado en una BD, que
> > contenga la lista de los usuarios registrados y con su correspondiente
> > password y no tenga que ser manejado de otra manera (protegiendo los
> > documentos).
> >
> > Es por ello que les escribo para saber si es posible conocer otras
> > alternativas ante esta problemática o donde puedo apoyarme para


obtener
> > información sobre esto.
> >
> > Salu2 :-)
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Daniel Villa
18/11/2003 - 20:36 | Informe spam
Hola Sashka:

Ahora si viene una pregunta ¿?

Retomando de lo que escribiste:

> > Para entrar a mi sitio escribo... localhost/misitio/Default.asp
> > Pero los usuarios no tienen porque saber que la ruta para bajar un
archivo
> > es localhost/arch1/elarchivo.xls



Realmente lo que deseo es que este documento de Excel o PDF, se visualice en
la Ventana del Explorador, mas no que el usuario lo baje o descargue.

En la barra del IE, cada vez que abre o navegas, te muestra la dirección

http://localhost/Intranet1/dirgral/...iembre.XLS

en ese momento si yo ejecuto me abre el documento dentro del IE.

Mi pregunta es como hacer o como impedir que el usuario no le muestre la
URL, tan directamente

Salu2 :-)

"Sashka" escribió en el mensaje
news:#
A tus órdenes... :))

Sashka

"Daniel Villa" escribió en el
mensaje news:
> Hola Sashka:
>
> Muchas gracias, dejame estudiar el ejemplo que me proporcionaste muy
> amablemente. Me parece y creo estar seguro, que realmente es lo que
necesito
> para manejarlo en mis paginas.
>
> Te aviso por este medio, si tengo alguna duda,
>
> Salu2 :-)
>
>
> "Sashka" escribió en el mensaje
> news:
> > Hola Daniel eso yo lo soluciono poniendo los archivos en una


carpeta
> > fuera de la ruta del site... por ejemplo si tengo ésta estructura...
> >
> > Localhost
> > Sitio1 'carpeta no compartida en internet
> > ArchivosPrivados ' carpeta compartida en internet


como
> > ARCH1
> > www 'carpeta compartida en internet
> como
> > MiSitio
> >
> > Para entrar a mi sitio escribo... localhost/misitio/Default.asp
> > Pero los usuarios no tienen porque saber que la ruta para bajar un
archivo
> > es localhost/arch1/elarchivo.xls
> > Por ejemplo
> > tienes en una página un link así:
> > <A href="baja.asp?archivo.xls">xxxxx</A>
> >
> > El código de baja.asp es así:
> > <script language="JavaScript">
> > <!--
> > function detente() {
> > if (location.search) {
> > var xx = location.search
> > xx= xx.replace("?", "")
> > document.location.replace("Bajando.asp?sURL=../ArchivosPrivados/" +


xx)
> > }
> > }
> > //-->
> > </script>
> > <html>
> > <body onload="detente()">
> > </body>
> > </HTML>
> >
> > Y el código de bajando.asp
> >
> > <%
> > If Request.Form("sURL") = "" then
> > call getBinaryFile(Request.QueryString("sURL"))
> > Else
> > call getBinaryFile(Request.Form("sURL"))
> > End If
> >
> > Function getBinaryFile(strFilePath)
> > Dim TypeBinary, oStream, strFileName, strRootFile, binFile, nomb, s
> >
> > if len(strFilePath)>0 then
> >
> > Set oStream = Server.CreateObject("ADODB.Stream")
> >
> > strFileName = split(strFilePath,"/")(ubound(split(strFilePath,"/")))
> >
> > nomb = strFileName
> > strRootFile = Server.MapPath(strFilePath)
> >
> > TypeBinary = 1
> > oStream.Open
> > oStream.Type = TypeBinary
> > oStream.LoadFromFile strRootFile
> > binFile = oStream.read
> >
> > oStream.Flush
> > if oStream.State = 1 then oStream.Close
> > Set oStream = Nothing
> >
> > Response.Buffer = true
> > Response.Clear
> > Response.AddHeader "content-disposition", "attachment; filename=" &
nomb
> > Response.ContentType = "application/" &
> > split(nomb,".")(ubound(split(nomb,".")))
> > Response.BinaryWrite binFile
> >
> > end if
> >
> > End Function
> >
> > %>
> >
> > Espero te sirva...
> >
> > Sashka
> >
> >
Respuesta Responder a este mensaje
#5 Sashka
18/11/2003 - 21:56 | Informe spam
En ese caso lo único que se me ocurre es hacerlo con frames

Sashka

"Daniel Villa" escribió en el
mensaje news:
Hola Sashka:

Ahora si viene una pregunta ¿?

Retomando de lo que escribiste:

> > > Para entrar a mi sitio escribo... localhost/misitio/Default.asp
> > > Pero los usuarios no tienen porque saber que la ruta para bajar un
> archivo
> > > es localhost/arch1/elarchivo.xls

Realmente lo que deseo es que este documento de Excel o PDF, se visualice


en
la Ventana del Explorador, mas no que el usuario lo baje o descargue.

En la barra del IE, cada vez que abre o navegas, te muestra la dirección

http://localhost/Intranet1/dirgral/...iembre.XLS

en ese momento si yo ejecuto me abre el documento dentro del IE.

Mi pregunta es como hacer o como impedir que el usuario no le muestre la
URL, tan directamente

Salu2 :-)

"Sashka" escribió en el mensaje
news:#
> A tus órdenes... :))
>
> Sashka
>
> "Daniel Villa" escribió en el
> mensaje news:
> > Hola Sashka:
> >
> > Muchas gracias, dejame estudiar el ejemplo que me proporcionaste muy
> > amablemente. Me parece y creo estar seguro, que realmente es lo que
> necesito
> > para manejarlo en mis paginas.
> >
> > Te aviso por este medio, si tengo alguna duda,
> >
> > Salu2 :-)
> >
> >
> > "Sashka" escribió en el mensaje
> > news:
> > > Hola Daniel eso yo lo soluciono poniendo los archivos en una
carpeta
> > > fuera de la ruta del site... por ejemplo si tengo ésta estructura...
> > >
> > > Localhost
> > > Sitio1 'carpeta no compartida en internet
> > > ArchivosPrivados ' carpeta compartida en internet
como
> > > ARCH1
> > > www 'carpeta compartida en


internet
> > como
> > > MiSitio
> > >
> > > Para entrar a mi sitio escribo... localhost/misitio/Default.asp
> > > Pero los usuarios no tienen porque saber que la ruta para bajar un
> archivo
> > > es localhost/arch1/elarchivo.xls
> > > Por ejemplo
> > > tienes en una página un link así:
> > > <A href="baja.asp?archivo.xls">xxxxx</A>
> > >
> > > El código de baja.asp es así:
> > > <script language="JavaScript">
> > > <!--
> > > function detente() {
> > > if (location.search) {
> > > var xx = location.search
> > > xx= xx.replace("?", "")
> > > document.location.replace("Bajando.asp?sURL=../ArchivosPrivados/" +
xx)
> > > }
> > > }
> > > //-->
> > > </script>
> > > <html>
> > > <body onload="detente()">
> > > </body>
> > > </HTML>
> > >
> > > Y el código de bajando.asp
> > >
> > > <%
> > > If Request.Form("sURL") = "" then
> > > call getBinaryFile(Request.QueryString("sURL"))
> > > Else
> > > call getBinaryFile(Request.Form("sURL"))
> > > End If
> > >
> > > Function getBinaryFile(strFilePath)
> > > Dim TypeBinary, oStream, strFileName, strRootFile, binFile, nomb,


s
> > >
> > > if len(strFilePath)>0 then
> > >
> > > Set oStream = Server.CreateObject("ADODB.Stream")
> > >
> > > strFileName split(strFilePath,"/")(ubound(split(strFilePath,"/")))
> > >
> > > nomb = strFileName
> > > strRootFile = Server.MapPath(strFilePath)
> > >
> > > TypeBinary = 1
> > > oStream.Open
> > > oStream.Type = TypeBinary
> > > oStream.LoadFromFile strRootFile
> > > binFile = oStream.read
> > >
> > > oStream.Flush
> > > if oStream.State = 1 then oStream.Close
> > > Set oStream = Nothing
> > >
> > > Response.Buffer = true
> > > Response.Clear
> > > Response.AddHeader "content-disposition", "attachment; filename="


&
> nomb
> > > Response.ContentType = "application/" &
> > > split(nomb,".")(ubound(split(nomb,".")))
> > > Response.BinaryWrite binFile
> > >
> > > end if
> > >
> > > End Function
> > >
> > > %>
> > >
> > > Espero te sirva...
> > >
> > > Sashka
> > >
> > >


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida