我创建了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)
没有任何项目:/
任何想法?
答案 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
有一个解决方法,我实现了同样的事情。这是一个很大的尴尬,但它可以据我所知。