悬赏,求Sharepoint为网站添加用户代码

lmjob 2010-08-05 08:01:37
想用代码实现向sharepoint2007网站添加用户,调用哪个接口,谢谢!
就是实现以下界面功能(网站设置》用户和权限》人员和组》新建 页面,所要实现的的功能


我试用
SPWeb web = null;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
site = new SPSite("http://lmjob:800");
web = site.OpenWeb();
});
web.Users.Add("mossuser", "kkk@126.com", "无名", "ss");

注:mossuser是本地帐户

但提示:"对象的当前状态使该操作无效。" 异常

谢谢!!
...全文
257 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Michael193 2010-08-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lmjob 的回复:]

@Michael193

引用你上面的代码还是不行,提示同样的错误
[/Quote]
Sorry, 那天写的程序我没有测试, 直接就写上去了, 试试下面这个, 如果还是不行, 再找我;
string siteUrl = "http://lmjob:800";
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
string userLoginName = "DomainName\\mossuser"; // Login Name 是你的域名 + UserName;
string userName = "mossuser"; // UserName 是你的用户名, 不能是 "无名";
string userEmail = "kkk@126.com";
string userNote = "";

web.SiteUsers.Add(userLoginName, userEmail, userName, userNote);
web.Update();
}
}


但是我不知道你现在添加用户的意图是做什么, 只是为了让User能够登录吗?还是需要加权限控制;
上述代码只是将这个User加入到Site 中, 即你可以在 Site 中的AllUsers中看到这个User, 如果需要加权限, 才可以对Web进行相应的操作;
lmjob 2010-08-08
  • 打赏
  • 举报
回复
用yun_liang1028 的方法解决了这个问题

谢谢yun_liang1028!
Oo云 2010-08-06
  • 打赏
  • 举报
回复

SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite oSite = new SPSite("http://localhost/");
SPWeb oWeb = oSite.OpenWeb();
SPGroupCollection groups = oWeb.SiteGroups;
foreach (SPGroup group in groups)
{
if (group.Name.Contains(memberGroupName)) // hard-coded the group name
{
try
{
SPUser user = oWeb.EnsureUser(userName);
if (user == null)
return;
SPUserCollection uc = group.Users;
bool flag = false;
foreach (SPUser u in uc)
{
if (userLoginName.Equals(u.LoginName))
{
flag = false;
return;
}
else
{
flag = true;
}
}
if (flag)
{
group.AddUser(user);
}
}
catch (Exception ex)
{

}
}
}
});

建议你把用户加到用户组里 而不是直接加到网站里
Justin-Liu 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 michael193 的回复:]
代码中, 你提升了代码权限以后, 在web中添加User的程序应该放在提升权限内部, 在外部当然还是权限不足了, 这样试一下,

C# code

SPSecurity.RunWithElevatedPrivileges(delegate()
{
string siteUrl = "http://lmjob:800";
using(SPSite site = new ……
[/Quote]
正解
lmjob 2010-08-06
  • 打赏
  • 举报
回复
@Michael193

引用你上面的代码还是不行,提示同样的错误
Jinglecat 2010-08-06
  • 打赏
  • 举报
回复
用 AllUsers 属性,web.AllUsers.Add(...
Michael193 2010-08-05
  • 打赏
  • 举报
回复
代码中, 你提升了代码权限以后, 在web中添加User的程序应该放在提升权限内部, 在外部当然还是权限不足了, 这样试一下,

SPSecurity.RunWithElevatedPrivileges(delegate()
{
string siteUrl = "http://lmjob:800";
using(SPSite site = new SPSite(siteUrl))
{
using(SPWeb web = site.OpenWeb())
{
web.Users.Add("mossuser", "kkk@126.com", "无名", "ss");
}
}
});

试一下这样可以吗?如果这样还是不行的话, 就可能不是代码的问题了;
shadan05 2010-08-05
  • 打赏
  • 举报
回复
家里的电脑有一套程序,ad to db, db to sp,互导的。
看周末能记的发你不。

3,242

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧