function addUserToSharePointGroup(groupID) {
//var clientContext = new SP.ClientContext(siteUrl);
var clientContext = new SP.ClientContext.get_current();
var collGroup = clientContext.get_web().get_siteGroups();
var oGroup = collGroup.getById(groupID);
var userCreationInfo = new SP.UserCreationInformation();
userCreationInfo.set_email('help@star.com.cn');
userCreationInfo.set_loginName('help');
userCreationInfo.set_title('help');
this.oUser = oGroup.get_users().add(userCreationInfo); //add user into group
function addUserToSharePointGroup(groupID) {
//var clientContext = new SP.ClientContext(siteUrl);
var clientContext = new SP.ClientContext.get_current();
var collGroup = clientContext.get_web().get_siteGroups();
var oGroup = collGroup.getById(groupID);
var userCreationInfo = new SP.UserCreationInformation();
userCreationInfo.set_email('help@star.com.cn');
userCreationInfo.set_loginName('STAR\\help');
userCreationInfo.set_title('help');
this.oUser = oGroup.get_users().add(userCreationInfo); //add user into group
var userInfo = '\nUser: ' + oUser.get_title() +
'\nEmail: ' + oUser.get_email() +
'\nLogin Name: ' + oUser.get_loginName();
alert(userInfo);
clientContext.load(oUser);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededaddUserToSharePointGroup),
Function.createDelegate(this, this.onQueryFailedaddUserToSharePointGroup));
}
function onQuerySucceededaddUserToSharePointGroup() {
alert(this.oUser.get_title() + " added.");
}
function onQueryFailedaddUserToSharePointGroup(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
} 二、检查Windows Server的 Domain member: Digitally encrypt or sign secure channel data (always) 安全设置项。
如果上面的排错没有解决The user does not exist or is not unique报错,那么就进入这一步进行偿试。
由于我的开发环境是Server 2008 R2,认证方式采用的是Kerberos(据说这点很重要,因为如果采用的是windows NTLM方式,则不会存在Application与AD环境的信息沟通问题),据说Windows Server 2008 (或 R2)中有某个Feature不支持Sharepoint上运行的Application,由此可能会造成AD信息交换出问题。
解决的办法就是设置Domain member: Digitally encrypt or sign secure channel data (always) 这个安全项。这个选项默认是开启的,我们需要手工停止它。方法是在服务器上 Start -> Run -> type gpedit.msc.
进行设置界面后,依序打开
Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options.在Security Options的右边你可以看到此选项,请手工将其停止,然后重启服务器。
需要指明的是,此处我只列出了上述两种解决思路,如果上面的情况均未解决你遇到的问题,你就需要针对你自己的特定情况,捕获可能的相关错误信息来解决问题。