1

我有这段代码来列出 SharePoint 门户上的所有用户:

使用 (Microsoft.SharePoint.SPSite mSite = new Microsoft.SharePoint.SPSite(GetCurrentSiteURL())) {

        Microsoft.SharePoint.SPWeb rootWeb = mSite.RootWeb;
        for (int i = 0; i < rootWeb.AllUsers.Count; i++)
        {
            int j = 0;
            char[] anyOf = new char[] { '#', '+' };
            rootWeb.AllUsers[i].

            if (rootWeb.AllUsers[i].LoginName.IndexOfAny(new char[] { '#', '+' }) == -1)//if(!rootWeb.AllUsers[i].IsDomainGroup)   

            {
                box1.Items.Insert(j, rootWeb.AllUsers[i].LoginName);
                j += 1;
            }
        }

是否可以仅列出当前登录的用户?

4

1 回答 1

2

SharePoint 不提供任何方法来确定当前登录的用户。这是因为 SharePoint 用于HTTP传输数据。作为HTTP无状态协议,您不知道用户当前是否在线,即使他/她只是在几秒钟前从您的 SiteCollection 请求了一个站点。
如果您想实现这样的目标,您需要创建一个WebPart跟踪登录用户并将其安装到您的场(如果您可以部署Farm-Solution到服务器的 GAC)。SandBoxed-Solutions由于受限的权限和 API,这根本不起作用。
此外,AllUsers-propertyRootWeb显示所有注册用户,但您无法获得任何有关其在线状态的信息。

于 2013-03-29T20:23:26.960 回答