2010-07-22 159 views
1

我正在開發一個只允許Farm管理員刪除Sitecollection的共享點功能。在SiteDeleting事件中,如果用戶刪除farmadmin,我需要切磋。我應該怎麼做?我有一個屬性來檢查用戶是webadmin(properties.Web.UserIsWebAdmin)還是siteadmin(properties.Web.UserIsSiteAdmin),但是如何檢查用戶是農場管理員?WSS 3.0功能 - 檢查用戶是否爲農場管理員

任何幫助深表感謝..

回答

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

這些類位於Microsoft.SharePoint.Administration命名空間。有關CurrentUserIsAdministratorSPFarm MSDN上的更多信息。

+0

是否有對此處獲得當前的農場說明我會給予好評 - 這是一個非靜態方法... – 2013-10-15 14:29:25

+0

@CodeJockey肯定。編輯答案。順便說一下,第二個答案由user2086490有你在找什麼:) – 2013-10-16 06:55:57

+0

hmmmmm ...好吧,不完全,因爲我不想重新發明輪子 - 如果有一個API函數使用,而不是定義一個自定義函數與一個委託和一個循環來調用,那麼我更喜歡API函數 - 除非存在顯着差異。另外 - 你前一天在這裏,而user2086490自5月2日14:47以來一直沒有回來。當然,有些人可能真的能夠使用循環或函數,或者能夠對Farm Admin組或其一個或多個成員做些事情,而你的回答並不提供這些東西,所以......他們'兩者都有用 – 2013-10-16 16:54:26

0
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; 
    } 
相關問題