对列表的Sharepoint访问权限忽略用户权限

时间:2011-02-03 09:23:48

标签: c# visual-studio sharepoint web-parts

我创建了Web部件(类似于向导)并且需要在列表中更改项目值,但是当获取列表项时,它们没有项目(已登录的用户无法访问此列表)。我可以忽略sharepoint权限,并更新此值吗?

我使用LINQ来共享点并获取上下文:

using (SystemOcenContextDataContext ctx = new SystemOcenContextDataContext("http://sh2010/sites/270"))
{
    // code :)
}

更新

使用以下方式进行测试时进行测试:

  SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite ElevatedSite = new SPSite("http://sh2010/sites/270"))
                {
                    using (SPWeb ElevatedWeb = ElevatedSite.OpenWeb())
                    {
                        list = ElevatedWeb.Lists["Ankiety i oceny"];
                    }
                }
            });

对象列表“有”项目

但是在我的项目中,我在使用时使用了sharepoint datacontext:

 SPSecurity.RunWithElevatedPrivileges(delegate()
            {

            using (SystemOcenContextDataContext ctx = new SystemOcenContextDataContext("http://sh2010/sites/270"))
            {
                item = ctx.AnkietyIOceny.First();
            }

        });

context(ctx)没有任何项目:/

任何想法?

2 个答案:

答案 0 :(得分:0)

  SPSecurity.RunWithElevatedPrivileges(delegate()
  {
        // Pur your code here.
  }); 

获取更多详情Here

答案 1 :(得分:0)

SharePoint linq提供的功能不适用于ElevatedPrivileges。它访问SPWeb.Current实例,该实例将具有请求的访问权限,而不是提升的用户。

http://jcapka.blogspot.com/2010/05/making-linq-to-sharepoint-work-for.html

有一个解决方法,我实现了同样的事情。这是一个很大的尴尬,但它可以据我所知。