昨天,打开Keny boy提供的一个用于为sps区域中的列表提供权限管理入口的代码。发现他的程序里面的原理很简单。
在wss站点中,每个文档库、每个列表都会有权限设置,而这个权限设置界面的入口是一个链接,我们只要单击这个链接就可以进入到某个列表的权限管理窗口。我们将这个链接拷贝到文本编辑器里分析,不难发现它的规律:
Http://服务器名称/wss站点名称/_layouts/2052/ShrOpt.aspx?obj={列表的id},列表类型
其中列表的类型只有两种,如果是文档库,就写doclib,如果是其他的列表,就写list
例如:test服务器上的site1站点上的某文档库,它的权限管理入口其实就是
http://test/site1/_layouts/2052/Shropt.aspx?obj={xxxxx-xxxxxxxx-xxxxxxx-xxxxxx},doclib
那么,keby说得对,既然sps是在wss的基础上封装的,那么就没有理由关闭这个入口,因此,我们只要找到某个区域的某个文档库或者列表的id就可以自己拼接成这个链接作为该文档库的入口。那么怎么获取这个文档库的id呢(不通过程序,直接通过浏览器),其实很简单,你只需要进入到文档库或者列表中,进入设置界面,随便找一个链接就可以获取到这个id。
比如说test服务器上的“文档中心”区域下的“文档库1”的地址是:http://test/C1/文档中心/文档库
我们只有进入设置界面,然后从常规设置之类的链接中获取到id,然后通过下列地址就可以进入管理界面:
http://test/C1/文档中心/文档库1/_layouts/2052/Shropt.aspx?obj={xxxxx-xxxxxxxx-xxxxxxx-xxxxxx},doclib
keny的程序就是先将区域下的列表列出来,然后让你选择一个列表,然后,通过List.id读出被选中的list的id,用list.basetype判断list的类型,用list.ParentWeb.Url获取地址,然后拼接出这个入口来。
由这个,我想到了,是不是其他的wss站点有的功能,sps区域也可以这样拼接地址进入呢?我试了一下,好像都有这样的入口,只是,可能某些功能已经被屏蔽了,因此总是提示输入用户名和密码。