Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Tecnologías .NET > Campos estáticos en Remoting
-Foros de debate

Tecnologías .NET
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Campos estáticos en Remoting
Enviado por Jonny el día 10 de marzo de 2006

Muy buenas:

Hola, soy un estudiante de informática que está haciendo proyecto de
fin de carrera. Me han asignado un proyecto en el que tengo que hacer
uso del lenguaje de programación C# en la plataforma .NET. Estoy
desarrollando una aplicación distribuida y en la cual hago uso de
remoting para la comunicación entre diferentes procesos.

En el servidor he publicado un servicio que tiene una función en el
que se le pasa como parámetro un objeto de una clase marcada como
[Serializable]. Esta clase tiene dos campos estáticos, que al
serializarlo en el cliente no da ningún problema, pero parece que en
el momento de deserializarlo y llamar al constructor estático en el
servidor se produce esta excepción:

Excepción no controlada del tipo 'System.Security.SecurityException'
en mscorlib.dll

Información adicional: Error de solicitud de permiso de tipo
System.Security.Permissions.FileIOPermission, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Los campos estáticos son los siguientes:

private const string PathSchema = DirectorioSchemas +
"Dispatcher\\MensajePrueba.xsd";
private static XmlSchemaCollection Schemas;

Y el constructor estático únicamente tiene estas dos líneas:

Schemas = new XmlSchemaCollection();
Schemas.Add(null, PathSchema);

La excepción se produce en la segunda instrucción del constructor
estático. Al debugear el string PathSchema tiene el valor correcto y
el XmlSchema está bien.

De momento he solucionado el problema de una manera bastante chapucera:
nada más comenzar el servidor he creado un objeto del mismo tipo que
el parámetro que mando, de está forma se llama al contructor
estático y a partir de ahí no me da ningún problema. Pero, no creo
que esta sea una solución correcta.

Espero que alguien sepa ayudarme.

Gracias y un saludo.

 
Campos estáticos en Remoting
Enviado por Jonny el día 13 de marzo de 2006

Edito (13-03-06):

Después de hacer unas pruebas me he dado cuenta que el problema es al intentar acceder al fichero del schema. He intentado acceder a un fichero de texto normal con la siguiente instrucción:

System.IO.File.Open("../../text.txt", System.IO.FileMode.Open);

Con idéntico resultado. Como conclusión decir que la excepción de produce al intentar leer un fichero. ¿Puede ser por la configuración de seguridad y permisos que tenga yo en el framework de .NET? ¿Cómo puedo cambiar eso para que tenga permisos para acceder a ficheros?

 

Re: Campos estáticos en Remoting
Enviado por Jonny el día 28 de marzo de 2006

Al final lo que he hecho es marcar el clase [Serializable] con otro atributo:

[System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Assert, Name=\"FullTrust\")]

Este atributo hace que se den permisos para acceder a los recursos de este código, aunque quien lo llame no los tenga.

Aunque he leído que esto puede crear vulnerabilidades en la seguridad, ¿alguien sabe algo para remediar esto?

Saludos.

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network