我正在开发一个SharePoint功能,它应该只允许Farm Admin删除地点。在Seledeling事件中,如果用户删除是FarmAdmin,我需要内心。我该怎么做?我有一个属性来检查用户是否是WebAdmin(properties.web.useriswebadmin)或siteadmin(properties.web.userissititeadmin),但如何检查用户是否是farm admin?

任何帮助非常感谢..

有帮助吗?

解决方案

SPFarm farm = SPFarm.Local;
farm.CurrentUserIsAdministrator();
.

这些类驻留在Microsoft.SharePoint.Administration命名空间中。更多关于 custruserisAdministrator spfarm 类在MSDN上。

其他提示

public static bool IsFarmAdmin(string loginName)
            {
                //For Currently Logged in users  
                //SPFarm.Local.CurrentUserIsAdministrator();  

        bool isFarmAdmin = false;

        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
            SPGroup adminGroup = SPAdministrationWebApplication.Local.Sites[0].AllWebs[0].SiteGroups["Farm Administrators"];

            foreach (SPUser user in adminGroup.Users)
            {
                if (user.LoginName == loginName)
                {
                    isFarmAdmin = true;
                }
            }

        });

        return isFarmAdmin;
    } 
.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top