Share via


Adicionando os usuários programaticamente a um site de declarações no SharePoint 2010

Artigo original publicado no sábado, 14 de janeiro de 2012

Um amigo me enviou um problema interessante outro dia.  Ele estava tentando adicionar um novo usuário programaticamente a um site de declarações do Windows e teve várias dificuldades.  Sua tentativa inicial de adicionar o usuário com o domínio\nome de usuário e a classe SPRoleAssignment não funcionou.  Depois, ele tentou de várias maneiras fornecer o valor codificado das declarações para como deveria ser o nome do usuário e isso funcionou parcialmente, mas teve alguns efeitos colaterais, como o nome aparecer duas vezes.  Embora eu ainda não tenha tido a chance de examinar pessoalmente todas as mesmas variações e problemas que ele, o que funcionou para mim na primeira tentativa foi apenas usar o método EnsureUser no SPWeb.  É muito mais simples que ficar tentando obter a codificação para o nome de conta; e também é muito mais fácil porque você precisa apenas passar o nome da conta em vez dos quatro parâmetros que normalmente teria que usar para acrescentar um usuário.  O EnsureUser cuida automaticamente da codificação do nome e realmente simplificou o código dele. 

Para deixar mais completo, aqui está um exemplo curto:

usando (SPSite theSite = new SPSite("https://foo"))
{
  usando (SPWeb theWeb = theSite.OpenWeb())
  {
    SPUser theUser = theWeb.EnsureUser("domain\username");
  }
}

 

Este é um post em um blog localizado. Encontre o arquivo artigo original em Adding Users Programmatically to A Claims Site in SharePoint 2010