MOSS SDK学习(8):手工创建MOSS站点

简介:
在MOSS的管理界面中我们可以很方便的创建一个网站,不过在有的情况下可能需要动态的、程序化的创建一个网站。本文就是演示在客户端使用WinForm来创建一个MOSS的网站,主要实现的功能有:
1、使用特定的一个模板创建网站
2、给新建网站分配一个超级管理员
3、创建网站的同时激活某个feature
4、在主页上加入新建网站的链接
5、删除指定的网站

对于一些基本操作,如在Winform中连接到MOSS站点等,如果有不清楚的朋友可以看我此系列的前面几篇文章,我这里就不再列出了

一、使用特定的一个模板创建网站
在MOSS中创建模板比较简单:首先定制好一个站点,然后在网站管理中把它导出为模板就可以了。
创建一个指定模板的代码如下:
            SPWeb mySite  =  _siteCollection.OpenWeb( " / " );
            SPWebCollection subSites 
=  mySite.Webs;
            SPWebTemplate myWebTemplate 
=   null ;
            
            
// 取得模板
            
// 取得系统模板 _siteCollection.GetWebTemplates(2052);
            
// 取得自定义的模板
             foreach (SPWebTemplate webTemplate  in  _siteCollection.GetCustomWebTemplates( 2052 ))
            
{
                
if (webTemplate.Title == "测试")
                
{
                    myWebTemplate 
= webTemplate;
                    
break;
                }

            }


            
string  siteUrl  =  textBox1.Text.ToString();   // 相对路径,不包含 / 
             string  siteTitle  =  textBox2.Text.ToString();
            
string  siteDescription  =  textBox3.Text.ToString();

            subSites.Add(siteUrl, siteTitle, siteDescription, 
2052 ,
               
mySite.WebTemplate,
               
true // true:使用单独的权限,不从父站点继承
                false   // false:当指定的目录存在时抱错
               ); 
由于我们使用的是自定义模板,所以使用 GetCustomWebTemplates 方法,参数中的2052表示中文的模板,我们自定义模板的名称为"测试",其他要注意的地方可以看代码中的注释,特别是siteUrl参数只是一个站点的相对路径就可以了,不能包含 “/”, 不能写成  http://domain:800/aaa/ 的形式

二、给新建网站分配一个超级管理员
代码如下:
             // 配置管理员
            SPWeb newSite  =  _siteCollection.OpenWeb( " / "   +  textBox1.Text  +   " / " );

            SPUserCollection users 
=  newSite.AllUsers;
            
for  ( int  i  =   0 ; i  <  users.Count; i ++ )
            
{
                users.Remove(i);
            }

            users.Add(
" domain\\username " "" "" "" );

            
// 给用户赋予权限
            SPRoleDefinitionCollection roles  =  newSite.RoleDefinitions;
            SPRoleDefinition role 
=  roles[ " 完全控制 " ];

            SPUser user 
=  users[ " domain\\username " ];

            SPRoleAssignment raUser 
=   new  SPRoleAssignment(user);
            raUser.RoleDefinitionBindings.Add(role);
            newSite.RoleAssignments.Add(raUser);
1、首先打开新建的网站,把原有的用户都删除,然后加入一个用户;
2、取得"完全控制"的角色定义
3、把用户加入角色
4、把角色分配加入网站

三、创建网站的同时激活某个feature
feature是MOSS中很重要的一个功能,激活MOSS灵活定制的功能都需要用feature来实现,比如给菜单加入一个链接,加入一个事件(在 MOSS SDK学习(5)  中有提到),也可以把一个独立的模块做成一个feature,灵活动态的加载(我准备在下篇文章中说一下如何把独立模块做成feature,其实也比较简单)
这里的代码很简单,不过我google了半天才找到-_-
             // 激活某个Feature
            newSite.Features.Add( new  Guid( " 4292625E-5811-47a4-9B88-58A206C53515 " ));
这里的参数就是feature的ID:
< Feature
  
Id ="4292625E-5811-47a4-9B88-58A206C53515"

四、在主页上加入新建网站的链接
创建好子网站之后肯定希望在主页上能够看到:
             // 在主页加入链接
            SPNavigationNodeCollection topNav  =  mySite.Navigation.TopNavigationBar;
            topNav[
0 ].Children.AddAsLast( new  SPNavigationNode(textBox1.Text,  " / "   +  textBox1.Text));

五、删除指定的网站
这一步比较简单,直接删除就可以了
            SPWeb mySite  =  _siteCollection.OpenWeb( " / " );

            SPWebCollection subSites 
=  mySite.Webs;
            subSites.Delete(textBox4.Text);

附:
演示界面如下:


演示代码下载:http://files.cnblogs.com/firstyi/MOSSClient8.rar 



    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2008/04/09/1145628.html,如需转载请自行联系原作者


相关文章
|
6月前
|
数据库连接 开发工具 数据库
逆向学习 SDK 篇:通过封装来简化代码编写,提高代码复用性
逆向学习 SDK 篇:通过封装来简化代码编写,提高代码复用性
32 0
|
7月前
|
存储 安全 机器人
【LLM】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
【5月更文挑战第13天】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
107 1
|
文字识别 API 语音技术
百度语音技术:文字识别转化为语音在线API和PHP-SDK开发文档的学习
百度语音技术:文字识别转化为语音在线API和PHP-SDK开发文档的学习
106 0
|
安全 Java 物联网
❤️【Android精进之路-02】安装Android Studio,认识Android SDK,一步步学习❤️
上一篇文章定好了Android学习计划,这篇文章就正式进入Android的学习之旅了。本文将重点介绍Android SDK的目录结构,如何安装Android Studio以及如何用Android Studio进行第一个Android应用的开发。
253 0
❤️【Android精进之路-02】安装Android Studio,认识Android SDK,一步步学习❤️
|
监控 算法 开发工具
5.2 芯片SDK开发:算法工程原理及创建|学习笔记
快速学习5.2 芯片SDK开发:算法工程原理及创建
5.2 芯片SDK开发:算法工程原理及创建|学习笔记
|
算法 开发工具 芯片
5.1 芯片SDK开发:创建初始SDK|学习笔记
快速学习5.1 芯片SDK开发:创建初始SDK
5.1 芯片SDK开发:创建初始SDK|学习笔记
使用 SDK 创建跟踪并配置日志服务报表
本文主要介绍如何通过 SDK 创建跟踪,将操作事件投递到日志服务,并配置日志服务报表。
使用 SDK 创建跟踪并配置日志服务报表
|
机器学习/深度学习 人工智能 网络协议
NVIDIA 迁移学习工具包 :用于特定领域DNS调谐的高级SDK
NVIDIA 近期发布了一个迁移学习工具包,是应用开发者和数据科学家提高深度学习效率的理想工具。
346 0
|
机器人 开发工具
阿里云RPA(机器人流程自动化)干货系列之十二:创建自定义SDK函数
导读:本文是阿里云RPA(机器人流程自动化)干货系列之十二,上篇介绍了采用编码模式开发了一个简单的RPA应用,如果自带的SDK函数不满足开发需求的话可以自行创建一个,本篇就介绍如何创建一个自定义SDK函数。 1)打开Studio客户端,点击”新建编码模式应用”,在弹出来的对话框中选择“自定义SDK” 2)编写一段应用代码,我们就直接打印一
6986 0
|
定位技术 开发工具 Android开发
Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37590688/article/details/76072563 前两天学习了一下Android的特色--LBS(基于百度地图Android SDK)。
1375 0

热门文章

最新文章