public static void enumerateListPermissions(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url) { string listId = String.Empty; string listTitle = String.Empty; LMD.ListCheck.WS_List.Lists myservice = new LMD.ListCheck.WS_List.Lists(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/lists.asmx"; sw.WriteLine(" List Permissions"); try { System.Xml.XmlNode nodes = myservice.GetListCollection(); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "List") { listId = node.Attributes["ID"].Value; listTitle = node.Attributes["Title"].Value; if (listTitle != "Workflow Tasks" && listTitle != "Workflow History" && listTitle != "Documents" && listTitle != "Workflow Tasks" && listTitle != "Pages" && listTitle != "Master Page Gallery" && listTitle != "Images" && listTitle != "fpdatasources") { getListPermisions(sw, wssAuthentication, url, listTitle); } } } } catch (Exception ex) { Console.Write(ex.Message); } }
public static void enumerateListFields(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url, string listId, string listName) { string fieldTitle = String.Empty; LMD.ListCheck.WS_List.Lists myservice = new LMD.ListCheck.WS_List.Lists(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/lists.asmx"; try { System.Xml.XmlNode nodes = myservice.GetList(listName); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "Fields") { for (int i = 0; i < node.ChildNodes.Count; i++) { if (node.ChildNodes[i].Name == "Field") { fieldTitle = node.ChildNodes[i].Attributes["DisplayName"].Value; sw.WriteLine("Url: " + url + ", List Title: " + listName + ", Field DisplayName: " + fieldTitle); //+ ", Field SchemaXml: " + node.ChildNodes[i].OuterXml); } } } } } catch (Exception ex) { Console.Write(ex.Message); } }
public static void enumerateListsInWeb(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url) { string listId = String.Empty; string listTitle = String.Empty; LMD.ListCheck.WS_List.Lists myservice = new LMD.ListCheck.WS_List.Lists(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/lists.asmx"; XmlNode ndLists = myservice.GetListCollection(); foreach (System.Xml.XmlNode node in ndLists) { //if (node.Name == "List") //{ listId = node.Attributes["ID"].Value; listTitle = node.Attributes["Title"].Value; //sw.WriteLine("Url: " + url + ", List Title: " + listTitle); enumerateListFields(sw, wssAuthentication, url, listId, listTitle); //} } }
public static void iterateThroughWebsLookingForSiteColumn(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url, string internalName) { string webUrl = String.Empty; string webId = String.Empty; string listTitle = String.Empty; LMD.ListCheck.WS_WebSvcWebs.Webs myservice = new LMD.ListCheck.WS_WebSvcWebs.Webs(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/webs.asmx"; XmlNode ndWebs = myservice.GetWebCollection(); foreach (System.Xml.XmlNode node in ndWebs) { if (node.Name == "Web") { webUrl = node.Attributes["Url"].Value; iterateThroughWebsLookingForSiteColumn(sw, wssAuthentication, webUrl, internalName); iterateThroughLists(sw, wssAuthentication, webUrl, internalName); } } }
public static void iterateThroughLists(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url, string internalName) { string listId = String.Empty; string listTitle = String.Empty; LMD.ListCheck.WS_List.Lists myservice = new LMD.ListCheck.WS_List.Lists(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/lists.asmx"; XmlNode ndLists = myservice.GetListCollection(); foreach (System.Xml.XmlNode node in ndLists) { if (node.Name == "List") { listId = node.Attributes["ID"].Value; listTitle = node.Attributes["Title"].Value; getListFields(sw, wssAuthentication, url, listId, listTitle, internalName); } } }
public static void getWebFields(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url, string internalName) { LMD.ListCheck.WS_WebSvcWebs.Webs myservice = new LMD.ListCheck.WS_WebSvcWebs.Webs(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/webs.asmx"; try { System.Xml.XmlNode nodes = myservice.GetColumns(); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "Field") { if (node.Attributes["Name"].Value == internalName) { sw.WriteLine("Url: " + url + ", Field SchemaXml: " + node.OuterXml); } } } } catch (Exception ex) { Console.Write(ex.Message); } }
public static void getUserGroupsForSite(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url) { if (url == string.Empty) return; string groups = null; string roles = String.Empty; string groupName = String.Empty; LMD.ListCheck.WS_usergroup.UserGroup myservice = new LMD.ListCheck.WS_usergroup.UserGroup(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/usergroup.asmx"; try { System.Xml.XmlNode nodes = myservice.GetGroupCollectionFromWeb(); sw.WriteLine(""); sw.WriteLine(""); sw.WriteLine("Url: " + url); sw.WriteLine(" Site Permissions"); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "Groups") { for (int i = 0; i < node.ChildNodes.Count; i++) { groupName = node.ChildNodes[i].Attributes["Name"].Value; roles = String.Empty; System.Xml.XmlNode nodes2 = myservice.GetRoleCollectionFromGroup(groupName); foreach (System.Xml.XmlNode node2 in nodes2) { if (node2.Name == "Roles") { for (int k = 0; k < node2.ChildNodes.Count; k++) { if (roles != String.Empty) roles += ", "; roles += node2.ChildNodes[k].Attributes["Name"].Value; } } } sw.WriteLine(" Group: " + groupName + ", Roles: " + roles); } } } enumerateListPermissions(sw, wssAuthentication, url); } catch (Exception ex) { Console.Write(ex.Message); } }
public static void getPermissionsForSite(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url) { string maskBin = String.Empty; int tailleMaks = 0; string userRights = null; LMD.ListCheck.WS_Permissions.Permissions myservice = new LMD.ListCheck.WS_Permissions.Permissions(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/Permissions.asmx"; System.Collections.Generic.Dictionary<int, string> dicoRights = new System.Collections.Generic.Dictionary<int, string>(); dicoRights.Add(0, " ViewListItems"); // 1 dicoRights.Add(1, " AddListItems"); // 2 dicoRights.Add(2, " EditListItems"); // 4 dicoRights.Add(3, " DeleteListItems"); // 8 dicoRights.Add(4, " ApproveItems"); // 16 dicoRights.Add(5, " OpenItems"); // 32 dicoRights.Add(6, " ViewVersions"); // 64 dicoRights.Add(7, " DeleteVersions"); // 128 dicoRights.Add(8, " CancelCheckout"); // 256 dicoRights.Add(9, " ManagePersonalViews"); // 512 dicoRights.Add(11, " ManageLists"); // 2 048 dicoRights.Add(12, " ViewFormPages"); // 4 096 dicoRights.Add(16, " Open"); // 65 536 dicoRights.Add(17, " ViewPages"); // 131 072 dicoRights.Add(18, " AddAndCustomizePages"); // 262 144 dicoRights.Add(19, " ApplyThemeAndBorder"); // 524 288 dicoRights.Add(20, " ApplyStyleSheets"); // 1 048 576 dicoRights.Add(21, " ViewUsageData"); // 2 097 152 dicoRights.Add(22, " CreateSSCSite"); // 4 194 304 dicoRights.Add(23, " ManageSubwebs"); // 8 388 608 dicoRights.Add(24, " CreateGroups"); // 16 777 216 dicoRights.Add(25, " ManagePermissions"); // 33 554 432 dicoRights.Add(26, " BrowseDirectories"); // 67 108 864 dicoRights.Add(27, " BrowseUserInfo"); // 134 217 728 dicoRights.Add(28, " AddDelPrivateWebParts"); // 268 435 456 dicoRights.Add(29, " UpdatePersonalWebParts"); // 536 870 912 dicoRights.Add(30, " ManageWeb"); // 1 073 741 824 dicoRights.Add(36, " UseClientIntegration "); // 68 719 476 736 dicoRights.Add(37, " UseRemoteAPIs"); // 137 438 953 472 dicoRights.Add(38, " ManageAlerts"); // 274 877 906 944 dicoRights.Add(39, " CreateAlerts"); // 549 755 813 888 dicoRights.Add(40, " EditMyUserInfo"); // 1 099 511 627 776 try { System.Xml.XmlNode nodes = myservice.GetPermissionCollection(url, "Web"); //XmlNode ndPermissions = permService.GetPermissionCollection("List_Name","List"); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "Permissions") { for (int i = 0; i < node.ChildNodes.Count; i++) { if (node.ChildNodes[i].Name == "Permission") { maskBin = Convert.ToString(Convert.ToInt32(node.ChildNodes[i].Attributes["Mask"].Value), 2); tailleMaks = maskBin.Length; userRights = null; foreach (System.Collections.Generic.KeyValuePair<int, string> kvp in dicoRights) { try { if (maskBin[(maskBin.Length - (kvp.Key + 1))] == '1') userRights += kvp.Value; } catch { } } if (node.ChildNodes[i].Attributes["MemberIsUser"].Value == "False") { sw.WriteLine("Url: " + url + ", Group Name: " + node.ChildNodes[i].Attributes["GroupName"].Value + ", Permissions: " + userRights); } else { sw.WriteLine("Url: " + url + ", User Name: " + node.ChildNodes[i].Attributes["UserLogin"].Value + ", Permissions: " + userRights); } } } } } } catch (Exception ex) { Console.Write(ex.Message); } }
public static void getPermissionLevels(StreamWriter sw, WSSAuthentication.Authentication wssAuthentication, string url) { Dictionary<string, string> sc = new Dictionary<string, string>(); if (url == string.Empty) return; LMD.ListCheck.WS_usergroup.UserGroup myservice = new LMD.ListCheck.WS_usergroup.UserGroup(); myservice.CookieContainer = wssAuthentication.CookieContainer; myservice.Url = url + "/_vti_bin/usergroup.asmx"; try { System.Xml.XmlNode nodes = myservice.GetRolesAndPermissionsForSite(); sw.WriteLine("Url: " + url); sw.WriteLine(" Site Permissions"); foreach (System.Xml.XmlNode node in nodes) { if (node.Name == "Role") { sc.Add(node.Attributes["Name"].Value, node.Attributes["BasePermissions"].Value); } } } catch (Exception ex) { Console.Write(ex.Message); } }