public void FromXML() { p = new FileIOPermission(PermissionState.None); SecurityElement esd = new SecurityElement("IPermission"); esd.AddAttribute("class", "FileIOPermission"); esd.AddAttribute("version", "1"); esd.AddAttribute("Unrestricted", "true"); p.FromXml(esd); Assert.IsTrue(p.IsUnrestricted(), "Should get an unrestricted permission"); esd = new SecurityElement("IPermission"); esd.AddAttribute("class", "FileIOPermission"); esd.AddAttribute("version", "1"); // FIXME: Adjust to run on Mac OS's if (Path.VolumeSeparatorChar == ':') { esd.AddAttribute("Read", "c:\\temp;d:\\temp2"); esd.AddAttribute("Write", "c:\\temp;d:\\temp2;z:\\temp3"); } else { esd.AddAttribute("Read", "/temp;/usr/temp2"); esd.AddAttribute("Write", "/temp;/usr/temp2;/usr/bin/temp3"); } p = new FileIOPermission(PermissionState.None); p.FromXml(esd); pathsInPermission = p.GetPathList(FileIOPermissionAccess.Read); Assert.IsTrue(pathsInPermission.Length == 2, "Path list should have 2 for Read"); pathsInPermission = p.GetPathList(FileIOPermissionAccess.Write); Assert.IsTrue(pathsInPermission.Length == 3, "Path list should have 2 for Write"); }
public static void FileIOPermissionCallMethods() { FileIOPermissionAccess fiopa = new Permissions.FileIOPermissionAccess(); FileIOPermission fiop = new FileIOPermission(fiopa, "testpath"); FileIOPermission fiop2 = new FileIOPermission(new Permissions.PermissionState()); fiop.AddPathList(fiopa, "testpath"); fiop.AddPathList(fiopa, new string[1] { "testpath" }); IPermission ip = fiop.Copy(); fiop.Equals(new object()); int hash = fiop.GetHashCode(); string[] pathlist = fiop.GetPathList(fiopa); IPermission ip2 = fiop.Intersect(ip); fiop.IsSubsetOf(ip); bool isunrestricted = fiop.IsUnrestricted(); fiop.SetPathList(fiopa, "testpath"); fiop.SetPathList(fiopa, new string[1] { "testpath" }); IPermission ip3 = fiop.Union(ip); SecurityElement se = new SecurityElement(""); fiop.FromXml(se); se = fiop.ToXml(); }
//</Snippet5> // ToXml creates an XML encoding of the permission and its current state; // FromXml reconstructs a permission with the specified state from the XML encoding. //<Snippet6> private bool ToFromXmlDemo() { bool returnValue = true; string fileIO1; FileIOPermission fileIOPerm1, fileIOPerm2; FileIOGenerator fileIOGen1 = new FileIOGenerator(); FileIOGenerator fileIOGen2 = new FileIOGenerator(); fileIOGen1.ResetIndex(); while (fileIOGen1.CreateFilePath(out fileIO1)) { if (fileIO1 == "") { fileIOPerm1 = new FileIOPermission(PermissionState.None); } else { fileIOPerm1 = new FileIOPermission(FileIOPermissionAccess.Read, fileIO1); } Console.WriteLine("********************************************************\n"); fileIOGen2.ResetIndex(); try { fileIOPerm2 = new FileIOPermission(PermissionState.None); fileIOPerm2.FromXml(fileIOPerm1.ToXml()); Console.WriteLine("Result of ToFromXml = " + fileIOPerm2.ToString() + "\n"); } catch (Exception e) { Console.WriteLine("ToFromXml failed :" + fileIOPerm1.ToString() + e); continue; } } return(returnValue); }