开发者

EnsureUser not returning valid User

I am trying to get a user back in SharePoint Client OM using EnsureUser. My code is:

ClientContext clientContext = new ClientContext(siteUrl);
User spUser = clientContext.W开发者_JS百科eb.EnsureUser(user);

Where siteUrl and user are both strings set as appropriate.

The result is spUser is the shell of a User object but all its properties (for example Email, Title, etc.) are not initialized. In VS they are showing {"The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested."}

What would be causing this? I thought EnsureUser would create the user if it is not already there. I know in Server OM sometimes you need to use "AllowUnsafeUpdates", is there something like that for Client OM?


It is almost a year late, but just in case someone else is searching for the same answer. After getting a reference to the user object you need to do the following before accessing the properties of the user.

clientContext.Load(spUser);
clientContext.ExecuteQuery();

or if you want to get the email and title only to reduce the pay load.

clientContext.Load(spUser, u => u.Email, u => u.Title);
clientContext.ExecuteQuery();

Basically, it establishs a request to the SharePoint Web and ask for the properties of the spUser. The request will be send when ExecuteQuery() is called.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜