0

シェアポイントに問題があります。リストにイベント ハンドラーがあり、誰かがリストに新しい項目を追加するたびに、必要な詳細を含む新しい 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);
    });
}

ありがとう。

4

1 に答える 1