Web パーツは、Sharepoint リスト (読み取りモード) にアクセスする必要があります。ユーザーが管理者の場合、問題はありません (想定どおりに動作します) が、ユーザーにアクセス許可がない場合は、「RunWithElevatedPrivileges」メソッドを使用する必要があります。
問題は、クエリが正しい結果を返さないように見えることです。私は何が欠けていますか?
SPList demoList = null;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite oSite = SPControl.GetContextSite(HttpContext.Current); // ADDED
SPWeb oWeb = oSite.OpenWeb(); // ADDED
demoList = oWeb.Lists["nameList"];
});
// demoList has 3 Elements (admin and no admin user) OK
SPListItemCollection collListItems = null;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPQuery oQuery = new SPQuery() { Query = "<OrderBy><FieldRef Name='Date' Ascending='False' /></OrderBy>" };
collListItems = demoList.GetItems(oQuery);
});
//
//IF ADMIN
//collListItems.Count ==>3
//IF NO ADMIN
//collListItems.Count ==>0