none
elevação de permissão para Sharepoint 2 RRS feed

  • Pergunta

  •  

    Colegas,

    No Sharepoint  3, temos como fazer a elevação de permissão  usando

    SPSecurity.RunWithElevatedPrivileges ...

     

    alguém sabe me dizer se no Sharepoint  2(WSS 2) é possível também?

     

    e outra coisa: preciso migrar sites em Sharepoint  2 pra Sharepoint  3, mas tenho muitos documentos do Office nas documents libraries do Sharepoint  2, saberiam me izer alguma dica para isso,pois nao é possivel restaurar um backup do Sharepoint  2 no Sharepoint  3.

     

     

     

    Obrigado

     

    segunda-feira, 5 de janeiro de 2009 17:26

Respostas

  • JSantos,

     

    Sim, mais tome cuidado, quando a função .Impersonate() executar, todo o código que você executar entre este comando e o wic.Undo() será realizado com o usuário definido no objeto WindowsIdentity, ou seja, quando você executar o listEvent.Site.OpenWeb(), o seu objeto site (SPWeb) estará sendo executado como o usuário definido na identidade, e não mais com o usuário que veio na requisição, que poderia ser autenticação integrada ou o usuário do pool de aplicativos.

     

    Abraços,

     

    Qualquer coisa posta aqui...

     

    flw..... =) .....

    terça-feira, 6 de janeiro de 2009 16:07

Todas as Respostas

  •  

    JSantos,

     

    Uma forma de você fazer isso é instanciar o objeto SPWeb durante uma execução de impersonate com outro usuário, mais ou mesmo isso.........

     

    Code Snippet

    void IListEventSink.OnEvent(SPListEvent listEvent)

    {

    WindowsImpersonationContext wic = null;

    SPWeb site = null;

    try

    {

    // Assumir identidade de outro usuário, aqui você poderia recuperar um objeto WindowsIdentity representando um

    // token do seu usuário.

    wic = WindowsIdentity.GetCurrent().Impersonate();

    // Quando você instanciar a web, a sua propriedade CurrentUser será definida como o usuário do impersonate, não

    // o que veio da execução.

    site = listEvent.Site.OpenWeb();

    }

    catch(Exception ex)

    {

    }

    finally

    {

    // Aqui você desfaz impersonate e volta a realizar operações como usuário normal

    if (wic!=null)

    wic.Undo();

    }

    }

     

    segunda-feira, 5 de janeiro de 2009 20:18
  • Obrigado pela resposta . Deixe-me ver se entendi: entao posso colocar um código p/ incluir um arquivo na doc. Library abaixo da linha


    site = listEvent.Site.OpenWeb();

    ?

     

    Obrigado

    terça-feira, 6 de janeiro de 2009 14:22
  • JSantos,

     

    Sim, mais tome cuidado, quando a função .Impersonate() executar, todo o código que você executar entre este comando e o wic.Undo() será realizado com o usuário definido no objeto WindowsIdentity, ou seja, quando você executar o listEvent.Site.OpenWeb(), o seu objeto site (SPWeb) estará sendo executado como o usuário definido na identidade, e não mais com o usuário que veio na requisição, que poderia ser autenticação integrada ou o usuário do pool de aplicativos.

     

    Abraços,

     

    Qualquer coisa posta aqui...

     

    flw..... =) .....

    terça-feira, 6 de janeiro de 2009 16:07