こんにちは
いつもお世話になっています。
承認権限がないユーザに承認させないといけないケースにぶつかって、調べたところSPSecurity.RunWithElevatedPrivilegesメソッドを見つけたのですが、
下記のコードを実行すると
「このページのセキュリティの検証は正しくありません。お使いの Web ブラウザにある [戻る] ボタンをクリックし、ページを最新の状態に更新してから、操作をやり直してください。 」
と怒られてしまいます。
void button_Click(object sender, EventArgs e)
{
SPSite siteColl = SPContext.Current.Site;
SPWeb site = siteColl.RootWeb;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite elevatedSiteColl = new SPSite(siteColl.ID))
{
using (SPWeb elevatedSite = elevatedSiteColl.OpenWeb(site.ID))
{
SPList discussionList = elevatedSite.Lists[new Guid(guidStr)];
foreach (SPListItem folder in discussionList.Folders)
{
if (folder.ModerationInformation != null
&& folder.ModerationInformation.Status.Equals(SPModerationStatusType.Pending))
{
folder.ModerationInformation.Status = SPModerationStatusType.Approved;
folder.SystemUpdate(true);
}
}
}
}
});
}
コードに誤りがあるのでしょうか?
それともRunWithElevatedPrivilegesでもこれはできないのでしょうか?
環境はWSS3.0です。
よろしくお願いします。