我正在開發一個只允許Farm管理員刪除Sitecollection的共享點功能。在SiteDeleting事件中,如果用戶刪除farmadmin,我需要切磋。我應該怎麼做?我有一個屬性來檢查用戶是webadmin(properties.Web.UserIsWebAdmin)還是siteadmin(properties.Web.UserIsSiteAdmin),但是如何檢查用戶是農場管理員?WSS 3.0功能 - 檢查用戶是否爲農場管理員
任何幫助深表感謝..
我正在開發一個只允許Farm管理員刪除Sitecollection的共享點功能。在SiteDeleting事件中,如果用戶刪除farmadmin,我需要切磋。我應該怎麼做?我有一個屬性來檢查用戶是webadmin(properties.Web.UserIsWebAdmin)還是siteadmin(properties.Web.UserIsSiteAdmin),但是如何檢查用戶是農場管理員?WSS 3.0功能 - 檢查用戶是否爲農場管理員
任何幫助深表感謝..
SPFarm farm = SPFarm.Local;
farm.CurrentUserIsAdministrator();
這些類位於Microsoft.SharePoint.Administration命名空間。有關CurrentUserIsAdministrator或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;
}
是否有對此處獲得當前的農場說明我會給予好評 - 這是一個非靜態方法... – 2013-10-15 14:29:25
@CodeJockey肯定。編輯答案。順便說一下,第二個答案由user2086490有你在找什麼:) – 2013-10-16 06:55:57
hmmmmm ...好吧,不完全,因爲我不想重新發明輪子 - 如果有一個API函數使用,而不是定義一個自定義函數與一個委託和一個循環來調用,那麼我更喜歡API函數 - 除非存在顯着差異。另外 - 你前一天在這裏,而user2086490自5月2日14:47以來一直沒有回來。當然,有些人可能真的能夠使用循環或函數,或者能夠對Farm Admin組或其一個或多個成員做些事情,而你的回答並不提供這些東西,所以......他們'兩者都有用 – 2013-10-16 16:54:26