Asp.net 当AD中不再存在用户时,SPWeb.REUSER获取SPUser对象

Asp.net 当AD中不再存在用户时,SPWeb.REUSER获取SPUser对象,asp.net,sharepoint,active-directory,Asp.net,Sharepoint,Active Directory,使用web.EnsureReuser,我可以知道当用户不再存在于广告中时,有没有办法仍然检索SPUser对象 或者我可以重新创建SPUser对象吗 foreach (var requestUser in requestUsers) { var item = requestUserList.Items.Add(); bool allowUnsafeUpdate = web.AllowUnsafeUpdates; try { if (!allowUns

使用web.EnsureReuser,我可以知道当用户不再存在于广告中时,有没有办法仍然检索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;
}
在验证过程中仍然存在一些错误,我目前正在解决它们


Q:如果用户在广告和SP列表中都不存在,有什么解决方法吗?

使用以下代码行获取站点用户

SPUser user = web.AllUsers.Cast<SPUser>().FirstOrDefault(u => u.LoginName.Contains("domain\\username"));
SPUser user=web.alluser.Cast().FirstOrDefault(u=>u.LoginName.Contains(“域\\用户名”);

使用以下代码行获取站点用户

SPUser user = web.AllUsers.Cast<SPUser>().FirstOrDefault(u => u.LoginName.Contains("domain\\username"));
SPUser user=web.alluser.Cast().FirstOrDefault(u=>u.LoginName.Contains(“域\\用户名”);

谢谢你的建议,我会试试这个。但是,如果SP列表中不存在该用户,此操作是否也有效?谢谢您的建议,我将尝试此操作。但是,如果SP列表中不存在该用户,该操作是否也会起作用?