2014-09-03 43 views
5

如果你想創建一個組,並添加組所有者和默認的用戶可以使用下面的代碼:如何使用客戶端對象模型將SharePoint組添加爲組所有者?

string siteUrl = "https://server/sites/sitename"; 
ClientContext clientContext = new ClientContext(siteUrl); 
Web web = clientContext.Web; 

GroupCreationInformation groupCreationInfo = new GroupCreationInformation(); 
groupCreationInfo.Title = "Custom Group"; 
groupCreationInfo.Description = "description ..."; 

User owner = web.EnsureUser(@"domain\username1");  
User member = web.EnsureUser(@"domain\username2"); 

Group group = web.SiteGroups.Add(groupCreationInfo);  
group.Owner = owner;    
group.Users.AddUser(member);  
group.Update(); 

clientContext.ExecuteQuery(); 

我的問題是:我知道如何將用戶添加爲組所有者,但如果我要添加SharePoint組「技術支持」作爲集團所有者的代碼應該是什麼?

回答

6

使用GroupCollection.GetByNameGroupCollection.GetById方法來檢索從現場的現有組,然後設置Group.Owner property到它的值,例如:

using (var ctx = new ClientContext(webUri)) 
{ 
    ctx.Credentials = credentials; 

    var groupCreationInfo = new GroupCreationInformation 
    { 
     Title = groupName, 
     Description = groupDesc 
    }; 

    var groupOwner = ctx.Web.SiteGroups.GetByName("Tech Support"); //get an existing group 

    var group = ctx.Web.SiteGroups.Add(groupCreationInfo); 
    group.Owner = groupOwner; 
    group.Update(); 
    ctx.ExecuteQuery();  
} 
+0

由於瓦迪姆。我試過GetById()它的工作。我試過GetByName()不工作,我想這是因爲我在VS 2010中試過了。我將在稍後的VS 2013中嘗試。但我認爲這是解決方案。 – allan8964 2014-09-04 13:51:11

+0

沒錯,GroupCollection.GetByName在SharePoint 2013中引入了CSOM API – 2014-09-04 14:29:09

+0

GetByName()在VS 2013中工作。再次感謝! – allan8964 2014-09-04 15:50:46

相關問題