利用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管理的路径有哪些,
None.gif Microsoft.SharePoint.Administration.SPGlobalAdmin ospGlobalAdmin  =   new  SPGlobalAdmin();
None.gif            
// Other sample code
None.gif
            SPVirtualServer olocalHost  =  ospGlobalAdmin.OpenVirtualServer(
None.gif             
new  Uri( " http://localhost " ));
None.gif            Text 
=  olocalHost.Version.ToString();
None.gif            Text 
+= " <br> " + ospGlobalAdmin.IsCurrentUserGlobalAdmin( ).ToString();
None.gif            
for ( int  i = 0 ;i < olocalHost.Config.Prefixes.Count;i ++ )
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                Text
+="<br>"+olocalHost.Config.Prefixes[i].Name+" "+olocalHost.Config.Prefixes[i].PrefixType.ToString();
ExpandedBlockEnd.gif            }


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

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

None.gif < trust  level ="Full"  originUrl =""   />

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

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

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

None.gif try
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif        
InBlock.gif                ospGlobalAdmin.Config.GlobalAdmin.AllowUnsafeUpdates 
= true;
InBlock.gif                
InBlock.gif                //olocalHost.Config.Prefixes.Delete("rockTestFolder");
InBlock.gif
InBlock.gif                
olocalHost.Config.Prefixes.Add("rockTestFolder",Microsoft.SharePoint.Administration.SPPrefixType.Exclusion);
ExpandedBlockEnd.gif
            }

None.gif            
catch (System.Exception ex)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                Text 
= ex.Message;
ExpandedBlockEnd.gif            }

None.gif            
finally
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                ospGlobalAdmin.Config.GlobalAdmin.AllowUnsafeUpdates 
= false;
ExpandedBlockEnd.gif            }


运行通过。


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

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


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


修该SecurityPermission

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值