昨天,打开 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 区域也可以这样拼接地址进入呢?我试了一下,好像都有这样的入口,只是,可能某些功能已经被屏蔽了,因此总是提示输入用户名和密码。