Wednesday, October 28, 2009

Sync WSS User Profile with AD

SPSite site = new SPSite("http://localhost");
SPWeb web = site.RootWeb;
SPList lstUser = web.Lists["User Information List"];
foreach (SPListItem itemUser in lstUser.Items)
{
SPPrincipalInfo info = SPUtility.ResolveWindowsPrincipal(site.WebApplication, itemUser["Account"].ToString(), SPPrincipalType.User, false);
if (info == null)
{
// User has been deleted
itemUser["Title"] = "***" + itemUser["Title"].ToString();
}
else if (info.PrincipalId < 0)
{
itemUser["Title"] = info.DisplayName;
itemUser["Department"] = info.Department;
itemUser["Job Title"] = info.JobTitle;
}
else
{
throw new Exception("");
}
itemUser.Update();
}

No comments: