利用Microsoft.SharePoint.Administration 来管理WSS(sharepoint)

建立我们的wss站点以后,我们可以通过wss管理台来管理wss站点。
微软同时也提供了Microsoft.SharePoint.Administration这个命名空间来提供相应的管理功能给我们。
这里是微软知识库的文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tsansMicrosoftSharePointAdministration_SV01027830.asp

通过对Microsoft.SharePoint.Administration的了解,我们几乎可以做到通过控制台完成的所有事情。
我这里举个例子来说明,如何使用这个命名空间来管理wss站点。
前一篇文章说明了,如何在webpart上使用Treeview控件
http://www.cnblogs.com/king_astar/archive/2005/04/05/132662.html
其中有一个过程就是将web_client排除在wss管理路径之外。
当时我们的做法是通过wss控制台来完成,现在让我们使用代码的力量吧。

特别注意,要想通过Microsoft.SharePoint.Administration来管理站点,必需是全局administrator,站点的administrator都无法运行相关代码

先来显示一下wss管理的路径有哪些,
Microsoft.SharePoint.Administration.SPGlobalAdmin ospGlobalAdmin = new SPGlobalAdmin();
            
//Other sample code
            SPVirtualServer olocalHost = ospGlobalAdmin.OpenVirtualServer(
             
new Uri("http://localhost"));
            Text 
= olocalHost.Version.ToString();
            Text 
+="<br>"+ospGlobalAdmin.IsCurrentUserGlobalAdmin( ).ToString();
            
for(int i=0;i<olocalHost.Config.Prefixes.Count;i++)
            
{
                Text
+="<br>"+olocalHost.Config.Prefixes[i].Name+" "+olocalHost.Config.Prefixes[i].PrefixType.ToString();
            }


先实例化一个SPGlobalAdmin,全局管理类,
确定管理哪个虚拟服务器,注意到没有跟wss管理站点几乎一样。
我觉得微软建立的模型的确不错。
接着显示,host版本,确定自己是否是全局管理员角色。
找到虚拟服务器了,我们来看看配置-config
很好找到我们想要的东西了, Prefixes
ok,第一步,我们先尝试把它的管理的路径列出来。

编译,拷贝到服务器。
显示,出现安全限制问题,还是象以前不管它,先在web.config文件中设置

<trust level="Full" originUrl="" />

后面我会说如何不用level=full的配置文件。

继续尝试刷新界面,OK,东西出来了。


好的,我们来尝试把webctrl_client加入到wss排除路径中去(注意图中已经显示webctrl_client已经排除了,我们这里假设未排除)
这一步也很简单:
我们先把全局设置成为允许不安全更新。
请注意,如果不设置这步以下的更新不能完成。
另外,这步不设置,wss的提示信息为
请将SPWeb的AllowUnsafeUpdates 设置为true,这里有点问题,因为并非是站点的administrator有权限,而是全局的才有权限
请注意我们设置ospGlobalAdmin.Config.GlobalAdmin

try
            
{
        
                ospGlobalAdmin.Config.GlobalAdmin.AllowUnsafeUpdates 
= true;
                
                //olocalHost.Config.Prefixes.Delete("rockTestFolder");

                
olocalHost.Config.Prefixes.Add("rockTestFolder",Microsoft.SharePoint.Administration.SPPrefixType.Exclusion);
            }

            
catch(System.Exception ex)
            
{
                Text 
= ex.Message;
            }

            
finally
            
{
                ospGlobalAdmin.Config.GlobalAdmin.AllowUnsafeUpdates 
= false;
            }


运行通过。


另外说一说,如果不设置level=full,怎么样修改,
WSS_Minimaltrust.config文件,
需要添加如下代码

<SecurityClass Name="SharePointPermission" Description="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> 
<SecurityClass Name="EnvironmentPermission" Description="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 


<IPermission class="SharePointPermission" version="1" Unrestricted="true" Name="FullTrust"  Description="Allows full access to all resources"/> 
<IPermission class="EnvironmentPermission" version="1" Unrestricted="true" Name="FullTrust"  Description="Allows full access to all resources"/> 


修该SecurityPermission

  <IPermission 
                                    
class="SecurityPermission"
                                    version
="1"
                                    Unrestricted
="true"
                            
/>


posted on 2005-04-13 15:28  一望无际的南  阅读(1879)  评论(0编辑  收藏  举报

导航