シェアポイントに問題があります。リストにイベント ハンドラーがあり、誰かがリストに新しい項目を追加するたびに、必要な詳細を含む新しい Web を作成したいと考えています。サイト コレクションの管理者ではない別のユーザーがアイテムを追加すると、問題が発生します。Web.Webs.Add()
メソッドでエラーが発生します:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
SPSecurity.RunWithElevatedPrivileges
デリゲートを使用していることに注意してください。
コードサンプルは次のとおりです。
public override void ItemAdded(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
string url = "the url";
if (Array.IndexOf(properties.Web.Webs.Names, url) >= 0)
{
properties.Web.Webs.Delete(url);
}
SPWeb newWeb = properties.Web.Webs.Add(url, "title", "description", properties.Web.Language, "STS#1", false, false);
});
}
ありがとう。