ユーザーのコメントを取得してカスタムリストに保存するWebパーツを作成しようとしています。このコードを記述して、Webパーツがページに追加されたら、サイトにリストを追加します。
[Guid("c314a0e8-0210-4064-b79e-bfd3594c6083")]
public class CommentWriteSpace : System.Web.UI.WebControls.WebParts.WebPart
{
SPSite site = null;
SPWeb web = null;
public CommentWriteSpace()
{
SPSecurity.CodeToRunElevated foo = new SPSecurity.CodeToRunElevated(doit);
SPSecurity.RunWithElevatedPrivileges(foo);
SPListCollection listCollection = web.Lists;
Guid listGuid = listCollection.Add("Comments List", "A list of user comments", SPListTemplateType.GenericList);
listCollection[listGuid].Fields.Add("User", SPFieldType.User, true);
listCollection[listGuid].Fields.Add("Comment", SPFieldType.Text, true);
listCollection[listGuid].OnQuickLaunch = true;
listCollection[listGuid].Update();
//this.Page.Request.Url.ToString()
}
public void doit()
{
site = SPContext.Current.Site;
web = site.OpenWeb();
}
}
しかし、RunWithElevatedPrivileges
メソッドは例外をスローします。これはアクセス許可の問題だと思います。例外は、site.OpenWeb();
特権を昇格せずにメソッドを実行したときに表示されるものと同じです。
何が問題なのですか?