Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   permisos en .Net (http://www.forosdelweb.com/f29/permisos-net-343601/)

nibs 21/10/2005 06:11

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


La zona horaria es GMT -6. Ahora son las 16:07.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.