Visual CSharp .NET - Campos eestáticos en Remoting

 
Vista:

Campos eestáticos en Remoting

Publicado por Jonny (4 intervenciones) el 10/03/2006 08:14:55
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Campos estáticos en Remoting

Publicado por Jonny (4 intervenciones) el 13/03/2006 07:57:25
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?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campos eestáticos en Remoting

Publicado por jonny (4 intervenciones) el 28/03/2006 10:34:38
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar