Linq to SharePoint與許可權提公升

2021-09-06 04:53:19 字數 1126 閱讀 2395

sharepoint 2010支援linq to sharepoint,讓程式設計師可以使用linq語法直接訪問sharepoint 2010**中的資料。但是在預設情況下,linq to sharepoint不支援許可權提公升,也就是說,如果在**中嘗試通過spsecurity.runwithelevatedprivileges()方 法來提公升執行許可權,你可能會發現,**並不會如你所願的以系統帳戶的身份,訪問sharepoint**的資料。

下面是一段典型的許可權提公升的**,在匿名委託方法中,首先構造了新的spsite和spweb物件,然後使用linq to sharepoint查詢了乙個列表中所有列表項的標題。雖然看起來linq to sharepoint好像會被提公升它執行的許可權,但實際情況並非如此。在下面的**中,中間的linq to sharepoint**並不會受到外面呼叫spsecurity.runwithelevatedprivileges()方法的影響。

private ienumerablegetallhardwarenames() }

} });

return result;

}如果希望linq to sharepoint**能夠提公升它的執行許可權,在使用linq to sharepoint之前,需要做乙個比較trick的事情,那就是將當前httpcontext物件設定為null。下面的**中,使用粗體標識了這些特殊的**。

});只所以要使用這個技巧,是因為在linq to sharepoint的實現中,使用了乙個名為 microsoft.sharepoint.linq.provider.spserverdataconnection的類,來真正連線到 sharepoint**。在這個類的建構函式中,有類似這樣的**:

if (spcontext.current != null)

else

為了提高效能,它會優先重用spcontext物件中所快取的spweb和spsite物件。這個行為雖然可以提高**的執行效率,但是卻會導致許可權提公升的失效,因為提公升了許可權的**必須使用乙個新構造的spsite和spweb物件。

Linq to SharePoint與許可權提公升

sharepoint 2010支援linq to sharepoint,讓程式設計師可以使用linq語法直接訪問sharepoint 2010 中的資料。但是在預設情況下,linq to sharepoint不支援許可權提公升,也就是說,如果在 中嘗試通過spsecurity.runwithelev...

Linq to SharePoint與許可權提公升

sharepoint 2010支援linq to sharepoint,讓程式設計師可以使用linq語法直接訪問sharepoint 2010 中的資料。但是在預設情況下,linq to sharepoint不支援許可權提公升,也就是說,如果在 中嘗試通過spsecurity.runwithelev...

linux root許可權 Linux 提權技術

一次完整的滲透測試流程,應該包含主機發現 服務列舉 實施攻擊 獲取shell 許可權提公升 許可權維持 內網滲透 痕跡清除共 8 個步驟。在滲透測試前期,我們會想盡辦法通過 某個漏洞攻擊 獲取到目標主機系統上的乙個 shell 用於執行系統命令,從而達到控制目標主機的目的。當我們獲取到的初始 she...