Ieri sul newsgroup di Microsoft legato alle tecnologie Sharepoint, è stato chiesto come era possibile ciclare sui permessi di una lista WSS 3. Io mi sono creato questo metodo come esempio, che risulta applicabile anche ad un elemento SPListItem.

private void FindPermissions(SPList wssObj)

{
foreach (SPRoleAssignment assignment in wssObj.RoleAssignments)
{
SPUser user = assignment.Member as SPUser;
SPGroup group = assignment.Member as SPGroup;
if (user != null)
{
//ho un utente Console.WriteLine("Utente: " + user.LoginName);
foreach (SPRoleDefinition roleDefinition in assignment.RoleDefinitionBindings)
{
Console.WriteLine("\t" + roleDefinition.Name);
}
}
if (group != null)
{
//ho un gruppo Console.WriteLine("Gruppo: " + group.Name);
foreach (SPRoleDefinition roleDefinition in assignment.RoleDefinitionBindings)
{
Console.WriteLine("\t" + roleDefinition.Name);
}
}
}
}

Per scorrere i permessi di un singolo item invece, basta cambiare il parametro di ingresso e metterlo di tipo SPlistItem.