您的位置:首页 > 其它

如何取出SPS某个区域中的所有用户并判断所有用户的权限

2005-10-15 00:22 369 查看
大家都知道SPS中的一个区域在对应一个SPWeb,Portal中的主页对应的是SPControl.GetContextSite.RootWeb,Portal站点相当与一个SPSite。

SPWeb中有两个关于区域用户的属性:AllUsers和SiteUsers

AllUsers对应所有现在登录到区域的用户;

SiteUsers对应的是所有属于这个区域的用户(包括了域组本身)不管是否登录;

通过以下代码可以验证:

foreach(SPWeb tempsite in SPControl.GetContextSite(Context).AllWebs)
{
if(tempsite.ID==new Guid("某个区域的Guid"))
{
labtest.Text+=tempsite.Title+"<br>";
labtest.Text+="----AllUsrs----<br>";
foreach(SPUser tempuser in tempsite.AllUsers)
{
if(!tempuser.IsDomainGroup)labtest.Text+="  "+tempuser.LoginName+":"+tempuser.Name+"<br>";
}
labtest.Text+="----SiteUsrs----<br>";
foreach(SPUser tempuser in tempsite.SiteUsers)
{
if(!tempuser.IsDomainGroup)labtest.Text+="  "+tempuser.LoginName+":"+tempuser.Name+"<br>";
}
}
}

所以如果想取某个区域中的所有用户并判断所有用户的权限的话可以:

1)取到区域的SiteUsers

2)对每个user运用DoesUserHavePermissions来判断(这个具体没有做过)可以到SDK中察看具体做法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: