public void AssignRole(string role, string grouporusername, string pathFolder) { try { ReportService2005.Role[] roles = rs.ListRoles(SecurityScopeEnum.Catalog); ReportService2005.Role[] policyRoles = new ReportService2005.Role[1]; pathFolder = pathFolder.Replace("//", "/"); foreach (ReportService2005.Role item in roles) { if (item.Name.Equals(role)) { policyRoles[0] = item; break; } } bool inheritParent = false; Policy[] policis = rs.GetPolicies(pathFolder, out inheritParent); ArrayList li = new ArrayList(policis); Policy poli = new Policy(); poli.GroupUserName = grouporusername; poli.Roles = policyRoles; li.Add(poli); rs.SetPolicies(pathFolder, (Policy[])li.ToArray(typeof(Policy))); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void UnAssignRole(string grouporusername, string pathFolder) { try { ReportService2005.Role[] roles = rs.ListRoles(SecurityScopeEnum.Catalog); ReportService2005.Role[] policyRoles = new ReportService2005.Role[1]; pathFolder = pathFolder.Replace("//", "/"); bool inheritParent = false; Policy[] policis = rs.GetPolicies(pathFolder, out inheritParent); ArrayList li = new ArrayList(policis); foreach (Policy item in policis) { if (item.GroupUserName.Equals(grouporusername)) { li.Remove(item); } } rs.SetPolicies(pathFolder, (Policy[])li.ToArray(typeof(Policy))); } catch (Exception ex) { throw new Exception(ex.Message); } }