Foros del Web » Programación para mayores de 30 ;) » .NET »

permisos en .Net

Estas en el tema de permisos en .Net en el foro de .NET en Foros del Web. Hola a todos necesito ayuda con una cuestión de permisos. Tengo un objeto creado con c# en una página web referenciado con la etiqueta <object ...
  #1 (permalink)  
Antiguo 21/10/2005, 06:11
 
Fecha de Ingreso: octubre-2005
Mensajes: 1
Antigüedad: 18 años, 6 meses
Puntos: 0
permisos en .Net

Hola a todos

necesito ayuda con una cuestión de permisos.
Tengo un objeto creado con c# en una página web referenciado con la etiqueta <object id="myObject" class="...">
Este objeto necesita permisos de escritura/lectura del disco duro, y lógicamente no los tiene.

PAra dárselos, hago que el usuario se baje un instalador msi cuyo código fuente es:
PolicyLevel machinePolicyLevel = null;
System.Collections.IEnumerator ph = SecurityManager.PolicyHierarchy();
while( ph.MoveNext() )
{
PolicyLevel pl = (PolicyLevel)ph.Current;
if( pl.Label == "Machine" )
{
machinePolicyLevel = pl;
break;
}
}
if( machinePolicyLevel == null ) return;
// 1.- Creamos el conjunto de permisos que queremos
PermissionSet permSet = new NamedPermissionSet("FullTrust");
// 2.- Creamos la condición de pertenencia al grupo que va a tener esos permisos
IMembershipCondition condition = new SiteMembershipCondition (
"csharp.local");
// 3.- Creamos un objeto de política de seguridad que contenga el conjunto
// de permisos que deseamos
PolicyStatement policy = new PolicyStatement(permSet);
// 4.- Creamos el grupo de permisos del configurator aplicado a la politica
CodeGroup group = new UnionCodeGroup (condition, policy);

group.Description = "Set of permisions for Revelaonline in Windows Media Center";
group.Name = NAME;

// 5.- Añadimos el grupo de permisos al gestor de permisos del host
IList children = machinePolicyLevel.RootCodeGroup.Children;
bool found = false;
foreach (CodeGroup child in children)
{
if (child.Name.CompareTo(NAME) == 0)
{
found = true;
break;
}
}
if (!found)
{
machinePolicyLevel.RootCodeGroup.AddChild(group);
SecurityManager.SavePolicy();
}

Con esto funciona sin problemas, si le pongo en vez de "FullTrust" "Everything", no funciona. Lo que quería era reducir el conjunto de permisos dados a solo IO lectura/escritura.
Alguna idea?

muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:34.