黄智勇 发表于 2015-9-28 13:17:16

利用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 +=&quot;<br>&quot;+ospGlobalAdmin.IsCurrentUserGlobalAdmin( ).ToString();
            for(int i=0;i<olocalHost.Config.Prefixes.Count;i++)
            {
                Text+=&quot;<br>&quot;+olocalHost.Config.Prefixes.Name+&quot; &quot;+olocalHost.Config.Prefixes.PrefixType.ToString();
            }   
先实例化一个SPGlobalAdmin,全局管理类,
确定管理哪个虚拟服务器,注意到没有跟wss管理站点几乎一样。
我觉得微软建立的模型的确不错。
接着显示,host版本,确定自己是否是全局管理员角色。
找到虚拟服务器了,我们来看看配置-config
很好找到我们想要的东西了, Prefixes
ok,第一步,我们先尝试把它的管理的路径列出来。

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


<trust level=&quot;Full&quot; originUrl=&quot;&quot; />   

  
  后面我会说如何不用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(&quot;rockTestFolder&quot;);

                olocalHost.Config.Prefixes.Add(&quot;rockTestFolder&quot;,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=&quot;SharePointPermission&quot; Description=&quot;Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; />
<SecurityClass Name=&quot;EnvironmentPermission&quot; Description=&quot;System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; />  



<IPermission class=&quot;SharePointPermission&quot; version=&quot;1&quot; Unrestricted=&quot;true&quot; Name=&quot;FullTrust&quot;Description=&quot;Allows full access to all resources&quot;/>
<IPermission class=&quot;EnvironmentPermission&quot; version=&quot;1&quot; Unrestricted=&quot;true&quot; Name=&quot;FullTrust&quot;Description=&quot;Allows full access to all resources&quot;/>  
修该SecurityPermission



<IPermission
                                    class=&quot;SecurityPermission&quot;
                                    version=&quot;1&quot;
                                    Unrestricted=&quot;true&quot;
                            />   
页: [1]
查看完整版本: 利用Microsoft.SharePoint.Administration 来管理WSS(sharepoint)