SharePoint2013代码操作权限组的几个Demo

(1)代码创建组

protected void CreateGroup_Click(object sender, EventArgs e)   
{ string groupName = this.groupTitle.Text;
string groupDescription = "I'm WanRen,I'm creating group";
SPSecurity.RunWithElevatedPrivileges(delegate()
{ using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{ using (SPWeb web = site.OpenWeb())
{ web.AllowUnsafeUpdates = true;
//组名,拥有者(我理解为创建者,谁创的就是谁的罢),组里的默认用户,组描述
web.SiteGroups.Add(groupName, web.CurrentUser, null, groupDescription);
//获取到刚刚创建的这个组
SPGroup group = web.SiteGroups[groupName];
//将当前用户添加到改组中
SPUser user = web.EnsureUser("liuwanren");

//不要将系统用户往组里添加,是显示不出来的
group.Users.Add(user.LoginName, user.Email, user.Name, user.Notes);
group.Update();
//基于这个组定义一个角色
SPRoleAssignment assignment = new SPRoleAssignment(group);
//创建一个权限级别
SPRoleDefinition definition = web.RoleDefinitions.GetByType(SPRoleType.Administrator);
//给角色绑定一个权限
assignment.RoleDefinitionBindings.Add(definition);
//将该角色添加到web的角色集合中
web.RoleAssignments.Add(assignment);
web.Update();
web.AllowUnsafeUpdates = false;
ScriptManager.RegisterStartupScript(this, this.GetType(), "result", "alert('" + "创建成功" + "');", true); } } }); }

(2)代码删除组

protected void DeleteGroup_Click(object sender, EventArgs e) 
{ string groupName = this.groupTitle.Text;
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
foreach (SPGroup group in web.SiteGroups) { if (group.Name.Equals(groupName))
{
web.SiteGroups.Remove(group.Name);
break;
}
} }
} }); ScriptManager.RegisterStartupScript(
this, this.GetType(), "result", "alert('" + "删除成功" + "');", true); }

(3)获取组并从组中移除用户

 

protected void GetGroup_Click(object sender, EventArgs e) 
       {      
      string groupName = this.groupTitle.Text;      
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) { foreach (SPGroup group in web.SiteGroups)
{
if (group.Name.Equals(groupName))
{
if (group.Users.Count > 0)
{
foreach (SPUser user in group.Users)
{
group.Users.Remove(user.LoginName);
}

}
break;
} } } } });
ScriptManager.RegisterStartupScript(
this, this.GetType(), "result", "alert('" + "获取并移除用户成功" + "');", true);

}

(4)获取组,判断组中是否存在某用户。

protected void InGroup_Click(object sender, EventArgs e)    
    {        
string groupName = this.groupTitle.Text; string userLoginName = this.userLoginName.Text; string inGroup = "用户在组中";
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) {
SPUser user = web.EnsureUser(userLoginName);
foreach (SPGroup group in user.Groups) { if (group.Name.Equals(groupName))


{ inGroup = "用户存在组中";

} else
{ inGroup = "用户不存在组中";

} }
} } });
ScriptManager.RegisterStartupScript(this, this.GetType(), "result", "alert('" + inGroup + "');", true); }

 

posted on 2015-11-13 23:23  !无名之辈  阅读(181)  评论(0)    收藏  举报