我想写一个C#应用程序来克隆SharePoint MOSS2007角色组(及其权限),但我不知道从哪里开始。MOSS2007在开发方面似乎文档很少,尽管我已经广泛地搜索了这个问题,但仍然不知道从哪里开始尝试。我希望这里有人做过类似的事情和/或足够了解SharePoint库,能够提供一个良好的参考点。对于这个基础问题以及未提供更多信息,我表示诚挚的歉意 - 如果我有其他信息的话,我会提供的!
在“克隆”SharePoint安全组时,首先需要了解的不是组本身,而是权限。
这些权限作为角色分配存储在SPWeb对象中。首先,您必须通过执行以下操作找到要克隆的组:
SPGroup group = spWeb.Groups["name group"];
SPRoleAssignment ass = spWeb.RoleAssignments.GetAssignmentByPrincipal(group2);
那么您只需要创建一个新的SPGroup,并将该组添加到roleassignment和roleassignment添加到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
}
}
}
}
}
当您想要远程编辑、更改或添加组时,确实可以使用 Web 服务。您需要的 Web 服务是 usergroup.asmx。您可以通过在 SharePoint 中简单地调用它来查找此 Web 服务的方法。
因此,请浏览:http://MySharePointSite/_vti_bin/usergroup.asmx
这将为您提供服务的所有可用方法列表。从应用程序连接到 Web 服务可以通过以下方式完成:
http://msdn.microsoft.com/en-us/library/ms458094.aspx
这会告诉您如何与用户组 Web 服务进行交互: