Un esempio di come assegnare i permessi ad un folder SharePoint recuperato tramite la sua url:
//url del folder
string url = "http://sharepoint.sgart.local/Shared%20Documents/Folder1";
//nome del gruppo
string groupName = "Sgart.it Owners";
//nome del permesso da assegnare
string permissionName = "Contribute";

using (SPSite site = new SPSite(url))
{
  using (SPWeb web = site.OpenWeb())
  {
    // bool allowUnsafeUpdate = web.AllowUnsafeUpdates;
    // web.AllowUnsafeUpdates = true;

    // trovo il folder tramite la sua url
    SPFolder fldr = web.GetFolder(url);
    // ricavo l'item per potergli assegnare i permessi
    SPItem item = fldr.Item;
    if (item.HasUniqueRoleAssignments == false){
      // spezzo l'ereditarietà senza copiare i permessi (false)
      item.BreakRoleInheritance(false);
    }
    // trovo il gruppo nella site collection
    SPGroup grp = web.SiteGroups[groupName];
    // assegno i permessi
    SPRoleAssignment ra = new SPRoleAssignment(grp);
    SPRoleDefinition rd = web.RoleDefinitions[permissionName];
    ra.RoleDefinitionBindings.Add(rd);
    item.RoleAssignments.Add(ra);

    // web.AllowUnsafeUpdates = allowUnsafeUpdate;
  }
}