Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Permisos de aplicacion Net (https://www.clubdelphi.com/foros/showthread.php?t=59007)

MaMu 09-08-2008 05:22:55

Permisos de aplicacion Net
 
Tengo una aplicacion en .Net (Vb) la cual crea archivos de texto. El problema es que si intento ejecutar la aplicacion en otra PC en donde no tengo instalado el VisualStudio (2005), aunque tenga instalado el Net Framework, esta tira un error y no se ejecuta. Si se ejecuta donde tenga el SDK o VisualStudio instalado. Como se corrije esto?

Saludos

dec 09-08-2008 05:29:19

Hola,

Hum... ¿y cuál es el mensaje de error, concretamente? :mad:

MaMu 09-08-2008 07:14:07

Cita:

Empezado por dec (Mensaje 306669)
Hola,

Hum... ¿y cuál es el mensaje de error, concretamente? :mad:

Que no tiene los permisos.

Al González 09-08-2008 15:55:23

Cita:

Empezado por MaMu (Mensaje 306673)
Que no tiene los permisos.

¡No Mam...! No MaMu. David te pregunta cuál es exactamente el texto del mensaje de error que aparece en tu pantalla. Parece increíble que todavía a estas alturas emitamos la frase más presente en los foros de programación ("me tira/marca un error") sin decir qué pu***ero error en concreto. :mad:

La gran mayoría de las veces, encontrar la solución depende de conocer ese texto. ;)

Un abrazo adivinado.

Al.

MaMu 12-08-2008 01:55:25

El error es:

System.Security.Permissions

IvalidPermission

Me lo genera un OpenDialog, cuando intengo leer un archivo INI.

Como sería para habilitar los permisos sobre un determinado archivo?
(lectura/escritura)

MaMu 13-08-2008 00:23:31

Aqui está

Error al crear el formulario. Consulte Exception.InnerException
para obtener más detalles.
Error: Error de solicitud de permiso de tipo 'System.Security.Permissions.FileIOPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
No se controló System.InvalidOperationException
Message="Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles.
Error: Error de solicitud de permiso de tipo 'System.Security.Permissions.FileIOPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'."
Source="PDD"
StackTrace:
en MiApp.My.MyProject.MyForms.Create__Instance__[T](T Instance)
en MiApp.My.MyProject.MyForms.get_main()
en MiApp.My.MyApplication.OnCreateMainForm()
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
en MiApp.My.MyApplication.Main(String[] Args)

caspol.exe -q -machine -chggroup LocalIntranet_Zone FullTrust
"C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\mscorcfg.msc"

Alguna idea?

MaMu 14-08-2008 00:32:06

Alguna idea?, esta excepción me sale cuando intento ejecutar un EXE que se encuentra en una unidad de red, en mi propia LAN. La tengo en el servidor, y si la ejecuto desde ahi, me tira el error, y realmente necesito ejecutar las aplicaciones desde el servidor y no desde mi maquina local. Como se hace para establecer los permisos?

Saludos y gracias

mamcx 14-08-2008 03:23:03

Claro, es muy simple:

System.Security.Permissions.FileIOPermission: Error de permisos de archivo.

C:\Archivos de programa\ es un directorio privilegiado. Eso significa que tiene fuertes restricciones en los permisos (Por fin!) en Vista y en windows con SP mas actualizados.

Es incorrecto y viola las guias de desarrollo:

http://download.microsoft.com/downlo...Spec%201.1.doc

(Son para Vista, pero es bueno tener presente lo mas moderno)

Te funciona en tu maquina no por el VS, sino porque como casi todos los desarrolladores, seguramente estas corriendo como administrador (gran error) cuando se deberia operar por la norma de el menor privilegio:

http://world-of-dino.blogspot.com/20...-de-menos.html

Un desarrollador, especialmente por ser un usuario "avanzado", debe correr con los minimos privilegios:

http://blogs.msdn.com/brianjo/archiv.../09/49267.aspx

Y es por eso que en linux tienen "mas" seguridad. Es que alli nadie alega esto ;)

MaMu 14-08-2008 14:24:47

No estoy corriendo como Administrador.
Al parecer debo firmar el ensamblado, pero no se como se hace. Alguien me da un ejemplo de uso del sn.exe y del al.exe???
Gracias

__hector 14-08-2008 19:18:20

.NET incluye CAS (Code Access Security) para controlar los permisos de ejecucion y/o acceso a recursos por parte de un ensamblado. En tu caso, con caspol puedes otorgar los accessos que te estan faltando, o modificar la aplicacion para que se ejecute en modo fulltrust.

http://www.sharepointblogs.com/ssa/a...mbly-list.aspx

http://msdn.microsoft.com/en-us/libr...tz(VS.80).aspx

MaMu 15-08-2008 13:56:30

Claro, esta muy bien todo. Pero el tema es que si yo ejecuto por red una aplicacion X (hecha en .Net) por red, esta se ejecuta y no tengo que configurar nada. Yo quiero saber como se hace eso, es decir, desde codigo, como se hace para que cada pc cliente confie en mi codigo. Se entiende?

Saludos


La franja horaria es GMT +2. Ahora son las 21:39:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi