gpt4 book ai didi

c# - 克隆一个共享点角色组

转载 作者:行者123 更新时间:2023-11-30 15:06:19 25 4
gpt4 key购买 nike

我想编写一个 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();

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

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

关于c# - 克隆一个共享点角色组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com