Ayuda con la creación de error de lista de SharePoint (probablemente debido a cuestiones de privilegio)
-
26-09-2019 - |
Pregunta
Recibo un error al intentar activar un elemento Web. Se activa bien en una configuración, pero no en una diferente. Administrador en ambos. Parece que no, porque no es capaz de crear la lista. El error es: Mensaje: Valor no puede ser nulo. Seguimiento de la pila: en Microsoft.Sharepoint.SPRoleAssignment..ctor en ClientRequestHandler.CreateList (...
private static void CreateLists()
{
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = SPContext.Current.Site)
{
using (SPWeb web = site.RootWeb)
{
string listName = LIST_NAME;
bool listExist = ContainList(web, listName);
if (!listExist)
{
AddFieldDelegate _delegate = new AddFieldDelegate(AddAttachmentFields);
SPList list = CreateList(web, listName, _delegate);
RegisterList(web, list, KEY);
}
}
}
});
}
catch (Exception ex)
{
throw new Exception(String.Format("Message: {0} Stack Trace: {1}", ex.Message, ex.StackTrace.ToString()));
}
} private static SPList CreateList(SPWeb web, string listName, AddFieldDelegate _delegate)
{
web.AllowUnsafeUpdates = true;
SPListTemplateType genericList = new SPListTemplateType();
genericList = SPListTemplateType.GenericList;
Guid listGuid = web.Lists.Add(listName, "List", genericList);
SPList list = web.Lists[listGuid];
list.Hidden = true;
SPView view = _delegate(list);
view.Update();
//Remove permissions from the list
list.BreakRoleInheritance(false);
//Make site owners the list administrators
SPPrincipal principal = web.AssociatedOwnerGroup as SPPrincipal;
SPRoleAssignment assignment = new SPRoleAssignment(principal);
assignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Administrator));
list.RoleAssignments.Add(assignment);
//update list changes
list.Update();
return list;
}
Solución
Asegúrese de que la web en cuestión en realidad tiene un grupo propietario asociado (/_layouts/groups.aspx -> Configuración -> Configurar grupos)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow