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();
            }
        }
    }
}

我还尝试了以下网址:

但即使这样也行不通。

4

1 回答 1

0

当您的朋友没有所需的特权时,可能会发生这种情况。对于您作为站点管理员来说,一切都很好。您需要做的一件事是修改 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 回答