使用web.ensureuser,我可以知道当用户不再存在于AD中时,是否仍然有一种方法来检索SPUser对象?
或者我可以重新创建SPUser对象吗?
foreach (var requestUser in requestUsers)
{
var item = requestUserList.Items.Add();
bool allowUnsafeUpdate = web.AllowUnsafeUpdates;
try
{
if (!allowUnsafeUpdate)
{
web.AllowUnsafeUpdates = true;
}
requestUser.User = web.EnsureUser(requestUser.LoginId); <---dead here
web.AllowUnsafeUpdates = allowUnsafeUpdate;
finally
{
web.AllowUnsafeUpdates = allowUnsafeUpdate;
}
var userProfile = UserProfile.GetUserProfile(requestUser.User);
item[OUASSharedMailboxRequestUserInternalName.RequestId] = requestIdLookup;
item[OUASSharedMailboxRequestUserInternalName.User] = requestUser.User;
item[OUASSharedMailboxRequestUserInternalName.PermissionType] = requestUser.PermissionType;
item[OUASSharedMailboxRequestUserInternalName.EmployeeId] = new SPFieldLookupValue(userProfile.ID, userProfile.EmployeeId);
item[OUASSharedMailboxRequestUserInternalName.LoginId] = requestUser.LoginId;
item[OUASSharedMailboxRequestUserInternalName.Action] = requestUser.Action;
item[OUASSharedMailboxRequestUserInternalName.Status] = requestUser.Status;
web.AllowUnsafeUpdates = true;
item.Update();
web.AllowUnsafeUpdates = false;
}

更新:有人建议我使用以下方法:
requestUser.User = web.EnsureUser[requestUser.LoginId];在验证过程中仍然存在一些错误,我目前正在解决这些错误。
问:如果用户不存在于AD和SP列表中,有什么解决办法吗?
发布于 2019-07-30 01:31:48
使用下面的代码行获取站点用户。
SPUser user = web.AllUsers.Cast<SPUser>().FirstOrDefault(u => u.LoginName.Contains("domain\\username"));https://stackoverflow.com/questions/57248416
复制相似问题