クライアント オブジェクト モデルを使用して、指定したユーザーのサブ Web のリストを取得する必要があります。問題は、これが、すべてのサブ Web にアクセスできる SharePoint ユーザーの ID で実行されている C# Web サービスから呼び出されていることです。このリストをフィルタリングして、指定したユーザーに属するものだけを返す方法はありますか? 私はユーザー名しか持っておらず、このアカウントのパスワードを持っていないため、NetworkCredential を使用した直接の偽装は機能しません。
以下の疑似コード:
var clientContext = new ClientContext(siteUrl);
var site = clientContext.Web;
var user = site.CurrentUser;
clientContext.Load(site);
clientContext.Load(user);
clientContext.ExecuteQuery();
var webCollection = site.GetSubwebsForCurrentUser(null);
clientContext.Load(webCollection);
clientContext.ExecuteQuery();
foreach (var web in webCollection)
{
// should I check permissions here?
}