我们都知道可以通过spsecuritytrimmedcontrol控件进行Master 上面某些区域的权限控制,比如拥有管理权限的可以看到Ribbon和网站设置,
其他权限就隐藏此功能。在大多数情况下此功能很不错
但有时候我们更希望通过SharePoint 用户组来控制权限,而不是权限定义来控制,这个时候我们就扩展spsecuritytrimmedcontrol控件,可以进行这个控件的重新封装与定义。 public class SPSecurityTrimmedControlGroups : SPSecurityTrimmedControl
{
private List groups = new List();
public string GroupsString
{
get
{
return string.Join(",", groups.ToArray());
}
set
{
groups.AddRange(
value.Split(new char[] { ',' },
System.StringSplitOptions.RemoveEmptyEntries)
);
}
}
protected override void Render(HtmlTextWriter output)
{
if (!string.IsNullOrEmpty(GroupsString) && IsMember())
{
base.Render(output);
}
}
private bool IsMember()
{
using (SPWeb web = new SPSite(SPContext.Current.Web.Url).OpenWeb())
{
bool isMember = false;
foreach (string group in groups)
{
isMember = web.IsCurrentUserMemberOfGroup(web.Groups[group].ID);
}
return isMember;
}
}
}