克隆sharepoint角色组

我想编写一个C#应用程序来克隆SharePoint MOSS2007角色组(及其权限),但是没有起点。

MOSS2007似乎没有充分记录(在开发方面),尽管谷歌搜索问题相当广泛仍然没有任何想法开始尝试。 我希望这里有人做过类似的事情和/或知道SharePoint库足以提供一个很好的参考点。

我真诚地为基本问题道歉,也没有提供更多信息 – 如果我还有其他任何想法的话!

当’克隆’SharePoint安全组时,首先不是关于组本身而是关于权限。

这些权限作为角色分配存储到SPWeb对象。 首先,您必须通过执行以下操作找到要克隆的组:

SPGroup group = spWeb.Groups["name group"]; 

然后,您必须使用此检索的组来获取SPWeb对象上的角色分配。

 SPRoleAssignment ass = spWeb.RoleAssignments.GetAssignmentByPrincipal(group2); 

然后,您只需创建一个新的SPGroup,并将该组添加到角色分配和角色分配到Web对象:

 spWeb.SiteGroups.Add(groupName, user, user, groupDescription); SPGroup newGroup = spWeb.SiteGroups[groupName]; SPRoleAssignment roleAssignment = new SPRoleAssignment(newGroup); //add role to web spWeb.RoleAssignments.Add(roleAssignment); spWeb.Update(); 

在此之后,您应该拥有一个与原始组具有相同权限的新组。

如果您没有在sharepointfunction中执行上述操作,则可以从控制台应用程序执行此操作。 只需在VS中创建一个控制台应用程序,并用以下内容填充它:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; namespace ConsoleApplication { class Program { static void Main(string[] args) { using (SPSite spSite = new SPSite("http://yoururl")) { using (SPWeb spWeb = spSite.RootWeb) { //perform the code to clone the group here } } } } } 

当您想远程编辑,更改或添加组时,您确实可以使用Web服务。 您需要的webservice是usergroup.asmx。 您只需在SharePoint中调用它即可找到此Web服务的方法。

所以浏览: http://MySharePointSite/_vti_bin/usergroup.asmx

这将为您提供服务的所有可用方法的列表。 从应用程序连接到Web服务可以通过以下方式完成:

http://msdn.microsoft.com/en-us/library/ms458094.aspx

这告诉你如何与用户组webservice进行交互:

http://msdn.microsoft.com/en-us/library/ms412944.aspx