示例#1
0
 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);
     }
 }
示例#2
0
 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);
     }
 }