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
Na parte superior do seu site do Office 365, escolha a imagem de perfil e escolha Sobre mim.
Na página Sobre mim, escolha editar seu perfil.
Na página Sobre mim, insira Eu trabalho na Contoso.
Escolha Salvar tudo e fechar.
Antes de executar o Cenário 3
- Na parte superior do seu site, escolha a imagem de perfil e escolha Sobre mim.
- Na página Sobre mim, escolha editar seu perfil.
- Em Editar detalhes, escolha detalhes.
- Em Habilidades, insira C#, JavaScript.
- 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.
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.
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.
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.
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.
Para adicionar novas habilidades à propriedade de perfil de usuárioSPS-Skillsa partir desse suplemento:
- Insira HTML5 e, em seguida, escolha Adicionar qualificações.
- Insira ASP.NET e escolha Adicionar Habilidade.
- Escolha Executar cenário 3.
- Verifique se Valor atual das qualificações mostra a nova lista de qualificações para o usuário.
- 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();
}
}