1、提升權限執行的代碼
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// 需要提升權限執行的代碼
});
應用場景:目前使用者可能沒有權限執行的操作,但系統需要執行這段代碼,這樣如果不提升代碼權限的話.
系統将會報出 拒絕通路錯誤.
用上述代碼可以将其所轄範圍内的代碼權限提升到最高.
建議:不到萬不得以不要使用,因為濫用會把系統的權限搞混.
2、解決一個或多個域類型未正确安裝。請轉到清單設定頁删除這些域
sharepoint清單内部字段的檢視方法
SPQuery查詢清單查不出結果,提示“一個或多個域類型未正确安裝。請轉到清單設定頁删除這些域”。
原因:
查詢的時候,字段名稱需要輸入字段的内部名稱,而不是看到的那個名稱
解決方法:
我寫了段代碼可以把字段以及對應的内部名稱列出來,查一下就可以了。
protected void Button2_Click(object sender, EventArgs e)
{
SPWeb site = SPControl.GetContextWeb(Context);
SPListItemCollection items = site.Lists["測試清單1"].Items;
string tmpstr = "";
SPListItem item = items[0];
for (int i = 1; i < item.Fields.Count; i++)
{
tmpstr = tmpstr+item.Fields[i].ToString()+":" + item.Fields[i].InternalName.ToString()+"<br><br>";
}
tmpstr = tmpstr + "<br><hr><br>";
Label1.Text = tmpstr;
}
3、解決代碼引發 Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem 安全性驗證無效
在更新語句前
加上:
myWeb.AllowUnsafeUpdates = true;//該代碼表示允許代碼更新