Como a: Obter recentes alterações de perfil de usuário usando o log de alteração
Microsoft Office do SharePoint Server 2007 oferece um modelo de objeto controle de alterações para armazenar o perfil usuário para suporte person-Based alertas. Esses alertas avisá-lo de aniversários de tempo de serviço e muitas outras alterações em um perfil usuário. O Office SharePoint Server 2007 trata todos os campos de data no perfil de usuário como aniversários de tempo de serviço. Quando uma data no perfil de usuário corresponde a atual data (com base no tempo servidor), O Office SharePoint Server 2007 cria um novo evento Aniversário de casamento. Observe que alterações em um campo de data não criam um evento.
A implementação de modelo de objeto de controle de alterações é semelhante a, mas menos eficiente do que o objeto Windows SharePoint Services 3.0 wssversion3 SPChange SPChange. O UserProfile USERPROFILE classe define dois métodos sobrecarregados para suporte controle de alterações. Esses são:
Pública GetChanges(Microsoft.Office.Server.UserProfiles.UserProfileChangeQuery) Microsoft.Office.Server.UserProfiles.UserProfileChangeCollection
Pública Microsoft.Office.Server.UserProfiles.UserProfileChangeCollection GetColleagueChanges (Microsoft.Office.Server.UserProfiles.UserProfileChangeQuery)
Use o GetChangesUserProfile GetChanges para retornar a coleção das alterações que ocorreram no perfil de usuário em um quadro tempo determinado. Um objeto SPChange SPChange contém informações sobre o tipo de alteração, conforme representado pelo ChangeType ChangeType enumeração. O ChangeType valor changeType indica o tipo de alteração, incluindo adicionando, atualizar, excluir ou renomear as alterações.
UserProfileChangeQuery é uma enumeração que descreve o evento alteração que você está interessado. De exemplo, ele pode ser:
DistributionListMembership
Colega
QuickLink
Aniversário de casamento
ProfileProperty
USERPROFILE
PrivacyItem
SingleValueProperty
MultivalueProperty
SiteMembership
O seguinte exemplo de código mostra como usar o método GetChanges() GetChanges() para localizar o que foi alterado em um perfil usuário na última Five Days. Observe que o GetColleagueChanges() GetColleagueChanges() método funciona da mesma maneira e retorna as alterações no perfil do colega de trabalho do usuário.
Antes de usar o exemplo de código, substituir nome_do_domínio nome de usuário e outros espaços reservados com real valores. Também referências adicionar para o seguinte no seu projeto Microsoft Visual Studio:
Microsoft.Office.Server
Microsoft.SharePoint
System.Web
Exemplo
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using System.Web;
namespace UserProfilesOMApp
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://servername"))
{
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager =
new UserProfileManager(context);
// this gets some subset of changes to a user profile
DateTime startDate =
DateTime.UtcNow.Subtract(TimeSpan.FromDays(5));
UserProfileChangeQuery changeQuery =
new UserProfileChangeQuery(false, true);
UserProfileChangeToken changeToken =
new UserProfileChangeToken(startDate);
changeQuery.ChangeTokenStart = changeToken;
changeQuery.Anniversary = true;
changeQuery.SingleValueProperty = true;
changeQuery.MultiValueProperty = true;
changeQuery.DistributionListMembership = true;
changeQuery.SiteMembership = true;
UserProfileChangeCollection changes =
profileManager.GetUserProfile
("domainname\\username").
GetChanges(changeQuery);
foreach (UserProfileChange change in changes)
{
Console.WriteLine(change.EventTime.ToString());
if (change is UserProfilePropertyValueChange)
{
UserProfilePropertyValueChange propertyChange =
(UserProfilePropertyValueChange)change;
Console.WriteLine(propertyChange.
ChangeType.ToString());
}
else if (change is UserProfileMembershipChange)
{
UserProfileMembershipChange membershipChange =
(UserProfileMembershipChange)change;
Console.WriteLine(membershipChange.
ChangeType.ToString());
}
}
Console.Read();
}
}
}
}
Consulte também
Outros recursos
Como a: recuperar um perfil de usuário
Como a: recuperar propriedades de perfil de usuário
Como a: recuperar o que é comum entre dois perfis de usuário