Partilhar via


Exemplo de Suplemento do SharePoint para ler ou atualizar propriedades de perfil de usuário

O exemplo UserProfile.Manipulation.CSOM mostra como ler e atualizar as propriedades de perfil de usuário para um usuário específico. Este exemplo usa um suplemento hospedado pelo provedor para:

  • Ler e exibir todas as propriedades de perfil de usuário para um usuário.
  • Atualizar uma propriedade de perfil de usuário de valor único.
  • Atualizar uma propriedade de perfil de usuário de valores múltiplos.

Use esta solução se desejar:

  • Ler ou gravar dados em uma propriedade de perfil de usuário para um usuário.
  • Usar valores de propriedades de perfil de usuário para personalizar o SharePoint.

Observação

Este exemplo de código só é executado no Office 365.

Antes de começar

Para começar, faça o download do suplemento de exemplo UserProfile.Manipulation.CSOM no projeto Padrões e Práticas do Desenvolvedor do Office 365 no GitHub.

Observação

The code in this article is provided as-is, without warranty of any kind, either express or implied, including any implied warranties of fitness for a particular purpose, merchantability, or non-infringement.

Antes de executar o Cenário 1

  1. Na parte superior do seu site do Office 365, escolha a imagem de perfil e escolha Sobre mim.

    Captura de tela da página de perfil do usuário com a seção Sobre mim realçada

  2. Na página Sobre mim, escolha editar seu perfil.

  3. Na página Sobre mim, insira Eu trabalho na Contoso.

  4. Escolha Salvar tudo e fechar.

Antes de executar o Cenário 3

  1. Na parte superior do seu site, escolha a imagem de perfil e escolha Sobre mim.
  2. Na página Sobre mim, escolha editar seu perfil.
  3. Em Editar detalhes, escolha detalhes.
  4. Em Habilidades, insira C#, JavaScript.
  5. Escolha Salvar tudo e fechar.

Usando o suplemento de exemplo UserProfile.Manipulation.CSOM

Quando você executa este exemplo, um suplemento hospedado pelo provedor começa, conforme mostrado na figura a seguir.

Captura de tela da página inicial do aplicativo UserProfile.Manipulation.CSOM

Este exemplo de código inclui três cenários.

Cenário Mostra como
1 Leia todas as propriedades de perfil do usuário para o usuário que executa o aplicativo.
2* Atualizar uma propriedade de perfil de usuário de valor único.
3* Atualizar uma propriedade de perfil de usuário de valores múltiplos.

Observação

Esse cenário só tem suporte no Microsoft 365.

Cenário 1: Ler todas as propriedades de perfil do usuário

Quando você escolhe Executar cenário 1o suplemento lê todas as propriedades de perfil de usuário para o usuário atual e, em seguida, exibe os dados do perfil do usuário em Propriedades atuais de perfil do usuário, conforme mostrado a seguir imagem.

Captura de tela de dados de propriedade do perfil do usuário atual

Ao escolherExecutar cenário 1 o métodobtnScenario1_Click será chamado em CodeSample1.aspx.cs para executar as seguintes tarefas:

  • Use PeopleManager para recuperar todas as propriedades de perfil do usuário para o usuário atual.
  • Iterar PersonProperties.UserProfileProperties para listar os valores de propriedades do perfil de usuário na caixa de texto.
protected void btnScenario1_Click(object sender, EventArgs e)
{
  var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);

  using (var clientContext = spContext.CreateUserClientContextForSPHost())
  {
    // Get the people manager instance and load current properties.
    PeopleManager peopleManager = new PeopleManager(clientContext);
    PersonProperties personProperties = peopleManager.GetMyProperties();
    clientContext.Load(personProperties);
    clientContext.ExecuteQuery();

    // Output user profile properties to a text box.
    txtProperties.Text = "";
    foreach (var item in personProperties.UserProfileProperties)
    {
      txtProperties.Text += string.Format("{0} - {1}{2}", item.Key, item.Value, Environment.NewLine);
    }
  }
}

Cenário 2: Atualizar uma propriedade de perfil de usuário de valor único

O cenário 2 mostra como atualizar uma propriedade de perfil de usuário valor único. Conforme será mostrado na figura a seguir, o valor atual da propriedade de perfil de usuárioSobre mim para o usuário que executar esse suplemento está Eu trabalho na Contoso.

Captura de tela da página inicial do Cenário 2

Para atualizar o valor da propriedade de perfil de usuário Sobre mim na caixa Novo valor sobre mim, digite Eu sou um engenheiro de software na Contosoe escolha Executar cenário 2. O código atualiza o valor da propriedade Sobre mim para Eu sou um engenheiro de software na Contoso.

Como mostrado na figura a seguir, a atualização de suplemento Valor atual sobre mim com o novo valor da propriedade de perfil de usuário Sobre mim.

Captura de tela da propriedade de perfil do usuário Sobre mim atualizada

Ao escolherExecutar cenário 2 o métodobtnScenario2_Click será chamado no CodeSample2.aspx.cs para fazer o seguinte:

  • Use PeopleManager para obter todas as propriedades de perfil do usuário para o usuário atual.
  • Formate o texto inserido pelo usuário em HTML.
  • Atualize o valor da propriedade de perfil de usuário AboutMe usando SetSingleValueProfileProperty, que aceita três parâmetros:
    • O nome da conta de usuário cujo perfil de usuário você está atualizando.
    • O nome da propriedade do perfil de usuário (AboutMe neste cenário).
    • O valor da propriedade, no formato HTML (sou um engenheiro de software na Contoso neste cenário).
protected void btnScenario2_Click(object sender, EventArgs e)
{
  var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);

  using (var clientContext = spContext.CreateUserClientContextForSPHost())
  {
    // Get the people manager instance and initialize the account name.
    PeopleManager peopleManager = new PeopleManager(clientContext);
    PersonProperties personProperties = peopleManager.GetMyProperties();
    clientContext.Load(personProperties, p => p.AccountName);
    clientContext.ExecuteQuery();

    // Convert entry to HTML.
    string updatedValue = (txtAboutMe.Text).Replace(Environment.NewLine, "");

    // Update the AboutMe property for the user using account name from the user profile.
    peopleManager.SetSingleValueProfileProperty(personProperties.AccountName, "AboutMe", updatedValue);
    clientContext.ExecuteQuery();
  }
}

Observação

Se você usa as propriedades personalizadas de perfil de usuário, configure a propriedade para que ela possa ser editada pelos usuários. A técnica usada neste cenário funciona para as propriedades personalizadas de perfil de usuário.

Cenário 3: Atualizar uma propriedade de perfil de usuário de valores múltiplos.

O Cenário 3 mostra como atualizar uma propriedade de perfil de usuário de valores múltiplos. A figura a seguir mostra a página inicial do Cenário 3. Valor atual das qualificações mostra as qualificações do usuário com o aplicativo. As habilidades são lidas a partir da propriedade de perfil de usuário SPS habilidades para o usuário.

Captura de tela da página inicial do Cenário 3

Para adicionar novas habilidades à propriedade de perfil de usuárioSPS-Skillsa partir desse suplemento:

  1. Insira HTML5 e, em seguida, escolha Adicionar qualificações.
  2. Insira ASP.NET e escolha Adicionar Habilidade.
  3. Escolha Executar cenário 3.
  4. Verifique se Valor atual das qualificações mostra a nova lista de qualificações para o usuário.
  5. Verifique se agora a propriedade de perfil de usuário SPS-Skills para o usuário mostra a nova lista de qualificações.

Ao escolher Executar cenário 3 o método btnScenario3_Click será chamado no CodeSample3.aspx.cs para fazer o seguinte:

  • Use PeopleManager para obter todas as propriedades de perfil do usuário para o usuário atual.
  • Leia a lista de qualificações mostrada na caixa de listagem.
  • Salvar novas habilidades para a propriedade de perfil de usuário SPS-Skills usando SetMultiValuedProfileProperty, que aceita três parâmetros:
    • O nome da conta de usuário cujo perfil de usuário está sendo atualizado.
    • O nome de propriedade de perfil de usuário, que é SPS-Skills.
    • Os valores de propriedade como uma Lista de objetos de cadeia de caracteres.
  protected void btnScenario3_Click(object sender, EventArgs e)
{
  var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);

  using (var clientContext = spContext.CreateUserClientContextForSPHost())
  {
    // Get the people manager instance and initialize the account name.
    PeopleManager peopleManager = new PeopleManager(clientContext);
    PersonProperties personProperties = peopleManager.GetMyProperties();
    clientContext.Load(personProperties, p => p.AccountName);
    clientContext.ExecuteQuery();

    // Collect the user's skills from the list box in order to update the user's profile.
    List<string> skills = new List<string>();
    for (int i = 0; i < lstSkills.Items.Count; i++)
    {
        skills.Add(lstSkills.Items[i].Value);
    }

    // Update the SPS-Skills property for the user using account name from the user's profile.
    peopleManager.SetMultiValuedProfileProperty(personProperties.AccountName, "SPS-Skills", skills);
    clientContext.ExecuteQuery();

    // Refresh the values.
    RefreshUIValues();
  }
}

Confira também