您可能知道,MOSS 2007 提供了将 Active Directory 属性与 SharePoint UserProfile 属性同步的功能。您可以将 AD 属性映射到共享服务 > 用户配置文件和属性 > 查看配置文件属性中的 userProfile 属性(一直在底部)。
我目前正在研究将 userProfiles 上的修改同步回 AD 的可能性。
我是 SharePoint 的新手,并且在其 API 中苦苦挣扎,但到目前为止我发现的是,您可以迭代 UserProfile 更改并找出时间戳、旧值、新值等。
string siteUrl = @"http://[siteUrl]/";
Microsoft.SharePoint.SPSite spsite = new Microsoft.SharePoint.SPSite(url);
Microsoft.Office.Server.ServerContext serverContext = Microsoft.Office.Server.ServerContext.GetContext(spsite);
Microsoft.Office.Server.UserProfiles.UserProfileManager userProfileMgr = new Microsoft.Office.Server.UserProfiles.UserProfileManager(serverContext);
var collection = userProfileMgr.GetChanges();
List<ProfilePropertyChange> changes = new List<ProfilePropertyChange>();
foreach (Microsoft.Office.Server.UserProfiles.UserProfileChange change in collection)
{
if (change.ObjectType == Microsoft.Office.Server.UserProfiles.ObjectTypes.SingleValueProperty)
{
var singleValue = change as Microsoft.Office.Server.UserProfiles.UserProfileSingleValueChange;
string oldValue = singleValue.OldValue;
string newValue = singleValue.NewValue;
var profileProperty = singleValue.ProfileProperty;
DateTime modificationDate = singleValue.EventTime;
...
}
}
但是,我目前无法发现的是对所谓的“映射属性”(AD 中的原始属性名称)的编程访问。
任何人都可以向我指出会为我揭示这些信息的 SharePoint API 吗?
非常感谢