我们有一个 Sharepoint 2010 应用程序,我们在其中以编程方式在 AD 中创建用户配置文件,然后使用来自 AD 的数据进一步创建 Sharepoint 2010 配置文件。有时我们会收到以下错误:
感谢你的帮助。
错误:System.ComponentModel.Win32Exception:在 Microsoft.Office.Server.Utilities.Win32.AdvApi.LookupAccountName(字符串 lpSystemName,字符串 lpAccountName,IntPtr Sid,Int32& cbSid,StringBuilder ReferencedDomainName,Int32& cchReferencedDomainName 上没有完成帐户名称和安全 ID 之间的映射, SID_NAME_USE&peUse)_
代码:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(strSiteUrl))
{
site.AllowUnsafeUpdates = true;
UserProfile user = null;
HttpContext oldContext = HttpContext.Current;
SPServiceContext context = SPServiceContext.GetContext(site);
HttpContext.Current = null;
UserProfileManager currentUserProfileManager = new UserProfileManager(context);
bool userexist = false;
try
{
user = currentUserProfileManager.GetUserProfile(accountName);
userexist = true;
}
catch (Exception ex)
{
userexist = false;
}
if (currentUserProfileManager != null)
{
if (!userexist)
{
try
{
user = currentUserProfileManager.CreateUserProfile(accountName);
}
catch (Exception ex)
{
throw;
}
}
}
}
}