Contexto, Um utilizador pode aceder a um site mas só tem permissões de acesso a algumas das doc libs que nele existem, ou seja, Controlo de permissões de acesso ao nivel de doc libs. Até aqui tudo normal.
Problema, Existe um site principal, que tem uma webpart que acede a todos os subsites, e vai a cada doclib, de cada site, buscar as pastas nelas criados.
Como os utilizadores não têm acesso a todas as doc libs o que o Sharpoint faz é lançar uma janela de autenticação que permita à webpart aceder à doc lib.
Resolução, quando se vai buscar as doc libs existe na collection lists um booleano que permite dizer para a collection ser só populada com as listas que o user tem acesso, desta forma o problema fica resolvido J.
Exemplo de código:
System.Guid docLibId = new Guid(docLibTitle);
web.Lists.ListsForCurrentUser = true;
SPListCollection lists = web.Lists;
foreach(SPList list in lists)
if(list.ID == docLibId)
{
SPFolder folder = list.RootFolder.SubFolders[folderUrl];
if(folder != null)
siteExists = true;
break;
}
Ou seja, se a lista que eu pretendo mostrar não existir na collection do utilizador eu não faço nada J.?>