2

SharePoint 2007 サイトにユーザー コントロールを追加しました。アイテムを追加すると、私がサイト管理者であるため、アイテムが追加されます。しかし、私の友人がログインしようとすると、「式bcozを評価できません。コードが最適化されているか、ネイティブフレームがスタックの一番上にあります」がスローさlist.update()れ、サイトにアクセス拒否エラーが表示されます。

コードは次のとおりです。

protected void btnOk_Click(object sender, EventArgs e)
{   
    try
    {             
        using (SPSite site = new SPSite("http URL"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                SPList list = web.Lists["List name"];
                UserItem = list.Items.Add();
                UserItem["col 1"] = Data1;
                UserItem["col 2"] = Data2;
                UserItem["col 3"] = Data3;
                UserItem["col 4"] = Data4;
                UserItem["col 5"] = Data5;
                UserItem.Update();
                list.Update();
            }
        }
    }
}

以下の URL も試しました。

しかし、それでも機能していません。

4

1 に答える 1

0

これは、あなたの友人が必要な特権を持っていない場合に発生する可能性があります.サイト管理者であるあなたにとって、すべてがうまく機能します. 必要なことの 1 つは、以下に示すように btnOk_Click コードを変更することです。

 SPSecurity.RunWithElevatedPrivileges(delegate()
 {
   using (SPSite site = new SPSite("http URL"))
    {
        using (SPWeb web = site.OpenWeb())
        {  
            web .AllowUnsafeUpdates = true;
            SPListItemCollection listitems = web.Lists["List name"].Items;
            SPListItem userItem = listitems.Add();
            userItem ["col 1"] = Data1;
            userItem ["col 2"] = Data2;
            userItem ["col 3"] = Data3;
            userItem ["col 4"] = Data4;
            userItem ["col 5"] = Data5;
            userItem.Update();               
            web .AllowUnsafeUpdates = false;
        }
    }
  });

これを試してください...うまくいくことを願っています。

于 2012-08-29T05:49:31.693 に答える