2

我有一个托管在远程服务器上的 SharePoint 2010 站点,我想使用 C# 从另一台计算机自动将用户添加到其中一个 SharePoint 组。我尝试过使用互联网上提到的网络服务,如下所示:

class Program
{
    static void Main(string[] args)
    {
        SPUserGroupRef.UserGroup usrGrpService = new SPUserGroupRef.UserGroup();
        System.Net.NetworkCredential netCred = new System.Net.NetworkCredential(<my username>, <my password>, <my domain name>);
        usrGrpService.Credentials = netCred;
        usrGrpService.AddUserToGroup(<group name>, <new user full name>, <domain\new user name>, <new user email address>, <notes>);
    }
}

注意: 1. SPUserGroupRef 是对 http:///_vti_bin/usergroup.asmx 的 Web 服务引用 2. 上述代码中所有带尖括号的实体都是字符串。

Main 中的第 3 行代码执行良好,但第 4 行失败,并显示“抛出 Microsoft.SharePoint.SoapServer.SoapServerException 类型的异常”。我对 SharePoint 很陌生,所以我可能在这里遗漏了一些东西。有人可以帮我弄清楚如何解决这个问题,或者可能会建议另一种可能有效的方法(但请记住,我的 SharePoint 网站托管在远程服务器上,而不是我的本地计算机上。

4

1 回答 1

1

你为什么不使用 Sharepoint 2010 客户端对象模型,我没有测试下面的代码,但它应该可以工作。

namespace ClientObjectModel 
{ 
class Program 
{ 
static void Main(string[] args) 
{ 
// Add a new user to a particular group 

string siteURL = "http://serverName:1111/sites/SPSiteDataQuery/"; 
ClientContext context = new ClientContext(siteURL); 
GroupCollection groupColl = context.Web.SiteGroups; 
Group group = groupColl.GetById(7); 
UserCreationInformation userCreationInfo = new UserCreationInformation(); 
userCreationInfo.Email = ""; 
userCreationInfo.LoginName = @"DomainName\UserName"; 
userCreationInfo.Title = "SharePoint Developer"; 
User user = group.Users.Add(userCreationInfo); 
context.ExecuteQuery(); 
} 
} 
}

Microsoft.SharePoint 和 Microsoft.SharePoint.Client 让我知道它是否有效?

于 2012-12-25T03:51:20.600 回答