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

标签 c# winforms 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();

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

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

相关文章:

c# - ComboBox:向项目添加文本和值(无绑定(bind)源)

c# - 使用 C# 控制另一个应用程序

sharepoint - SPSite 站点 = 新 SPSite(SPContext.Current.Web.Url) 与 SPContext.Current.Web.Site

c# - EWS 托管 API : Reply to a message while adding an internet header

winforms - 两个连续的 KeyDown 事件之间的延迟很长

java - 我可以在 Sharepoint 2007 中添加 Java portlet 吗?

Azure 逻辑 - 错误网关

c# - .Net Core SignalR 不能在启动时添加或使用

c# - Dictionary.ContainsKey() 抛出 KeyNotFound 异常

c# - 转换并对象为通用基接口(interface)