克隆sharepoint角色组

时间:2011-11-03 06:18:22

标签: c# winforms sharepoint

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

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

我真诚地为基本问题道歉并且也没有提供更多信息 - 如果我还有其他任何我愿意的话!

2 个答案:

答案 0 :(得分:4)

当“克隆”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();

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

如果您没有在sharepoint功能中执行上述操作,则可以从控制台应用程序执行此操作。只需在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
          }          
    }                  
 }    
 } 
}

答案 1 :(得分:1)

如果要远程编辑,更改或添加组,您确实可以使用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

相关问题