/// <summary> /// Converts an XmlElement into a PermissionSet object. /// </summary> /// <param name="element">An XML representation of the permission set.</param> /// <returns>The converted permission set.</returns> public static PermissionSet XmlToPermissionSet(XmlElement element) { if (element == null) { return(null); } SecurityElement se = XmlElementToSecurityElement(element); if (se == null) { return(null); } PermissionSet ps = new PermissionSet(PermissionState.None); try { ps = new ReadOnlyPermissionSet(se); } catch (ArgumentException ex) { //UNDONE: Need to log exception thrown from PermissionSet.FromXml Debug.Fail(String.Format(CultureInfo.CurrentCulture, "PermissionSet.FromXml failed: {0}\r\n\r\n{1}", ex.Message, element.OuterXml)); return(null); } return(ps); }
private static PermissionSet RemoveNonReferencedPermissions(string[] setToFilter, ITaskItem[] dependencies) { PermissionSet retSet = new PermissionSet(PermissionState.None); if (dependencies == null || setToFilter == null || setToFilter.Length == 0) { return(retSet); } List <string> assemblyNameList = new List <string>(); foreach (ITaskItem dependency in dependencies) { AssemblyName dependentAssemblyName = AssemblyName.GetAssemblyName(dependency.ItemSpec); assemblyNameList.Add(dependentAssemblyName.Name + ", " + dependentAssemblyName.Version.ToString()); } SecurityElement retSetElement = retSet.ToXml(); foreach (string permissionXml in setToFilter) { if (!String.IsNullOrEmpty(permissionXml)) { string permissionAssemblyName; string className; string assemblyVersion; SecurityElement permission = SecurityElement.FromString(permissionXml); if (!ParseElementForAssemblyIdentification(permission, out className, out permissionAssemblyName, out assemblyVersion)) { continue; } if (assemblyNameList.Contains(permissionAssemblyName + ", " + assemblyVersion)) { retSetElement.AddChild(SecurityElement.FromString(permissionXml)); } } } retSet = new ReadOnlyPermissionSet(retSetElement); return(retSet); }
public static PermissionSet XmlToPermissionSet(XmlElement element) { if (element == null) { return(null); } SecurityElement permissionSetXml = XmlElementToSecurityElement(element); if (permissionSetXml == null) { return(null); } PermissionSet set = new PermissionSet(PermissionState.None); try { set = new ReadOnlyPermissionSet(permissionSetXml); } catch (ArgumentException) { return(null); } return(set); }