none
Permissao de Usuario (ParenteSite) RRS feed

  • Pergunta

  • Boa tarde Pessoal estou com o seguinte problema, 

    Tenho a seguinte Hierarquia de sites

    site/subsite1/subsite2/subsite3 que seria SitePrinicpal/Cenario/Comunidade/Painel

    quando estou na hierarquia por exemplo CENARIO procuro poir todos os site filhos (Comunidades)

    meu codigo ficaria assim : 

     protected void Page_Load(object sender, EventArgs e)
        {
          SPSite oSite = SPContext.Current.Site;
          SPWeb oWeb = SPContext.Current.Web;
     try
          {
    
            SPWebCollection parentesSite = oSite.AllWebs;
    
            int count = parentesSite.Count;
    
            //SPWebCollection parentesSite = oSite.Webs;
            for (int i = 0; i < parentesSite.Count; i++)
            {
    
             }
    
         }
          catch (Exception E)
         {
           
         }  
      }
    

     

     

    Quando estou LOGADO com UM usuário com que tem controle total ele percore a lista de SiteFilhos 

    Mas quando estou LOGADO com um usuario como por exemplo SOMENTE LEITURA ele da erro de permissao de acesso

     

    EM debug percebi que quando estou com o usuario logado SOMENTE LEITURA ele internamente mostra a seguinte mensagem no objeto criado AllWebs.Count

     'oSite.AllWebs.Count' threw an exception of type 'System.Threading.ThreadAbortException' 

     

    e os objetos  

     SPWebCollection parentesSite = oSite.AllWebs;

     

     

     

    apresentam o seguinte erro:

      

    Unable to evaluate expression because the code is optimized

    or a native frame is on top of the call stack

     

    alguem ja passou por isso?

     

     


    Fernando João Borges
    sexta-feira, 20 de maio de 2011 20:37

Todas as Respostas

  • Fernando,

    Tente elevar os privilegios:

    SPSecurity.RunWithElevatedPrivileges(delegate()

    {

    }

     

    Atenciosamente,


    ------------------
    Leandro Figueira
    Desenvolvedor SharePoint Jr.


    Espero ter ajudado.
    Ajude manter o fórum organizado, se útil classifique!

    sábado, 21 de maio de 2011 00:52
  • try
          {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
              //using (SPSite sc = new SPSite(SPContext.Current.Site.Url))
              using (SPWeb sc = SPContext.Current.Web)
              {
                SPWebCollection lista = sc.Webs;
    
                for (int i = 0; i < lista.Count;i++ ) {
                  bla.Text = lista.Count.ToString() + " sites;";
    
    
                }
              }
            });
          }
          catch (Exception) // System.ArgumentException List " Announcements " not found!
          {
          }

    Fiz isso que voce mandou tambem nao funcionou tem alguma outra idiea?

     

     


    Fernando João Borges
    domingo, 22 de maio de 2011 21:47