首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户不再存在于AD中时,SPWeb.EnsureUser获取SPUser对象

当用户不再存在于AD中时,SPWeb.EnsureUser获取SPUser对象
EN

Stack Overflow用户
提问于 2019-07-29 06:43:57
回答 1查看 720关注 0票数 2

使用web.ensureuser,我可以知道当用户不再存在于AD中时,是否仍然有一种方法来检索SPUser对象?

或者我可以重新创建SPUser对象吗?

代码语言:javascript
复制
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;
}

更新:有人建议我使用以下方法:

代码语言:javascript
复制
requestUser.User = web.EnsureUser[requestUser.LoginId];

在验证过程中仍然存在一些错误,我目前正在解决这些错误。

问:如果用户不存在于AD和SP列表中,有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 01:31:48

使用下面的代码行获取站点用户。

代码语言:javascript
复制
SPUser user = web.AllUsers.Cast<SPUser>().FirstOrDefault(u => u.LoginName.Contains("domain\\username"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57248416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档