Moss 几个编程技巧
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;//该代码表示允许代码更新