2010-07-22 5 views
1

Я разрабатываю функцию sharepoint, которая должна позволять только администратору фермы удалять sitecollection. В событии SiteDeleting мне нужно выполнить chech, если удаление пользователя - farmadmin. Как мне это сделать? Я получил свойство проверить, является ли пользователь webadmin (properties.Web.UserIsWebAdmin) или siteadmin (properties.Web.UserIsSiteAdmin), но как проверить, является ли пользователь администратором фермы?WSS 3.0 Feature-Check, если пользователь является администратором фермы

Любая помощь очень ценится ..

ответ

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

Эти классы находятся в Microsoft.SharePoint.Administration пространстве имен. Подробнее о CurrentUserIsAdministrator или SPFarm класс на MSDN.

+0

я upvote если бы инструкции о том, как получить текущую ферму здесь - это не статический метод ... –

+0

@CodeJockey уверен. Отредактированный ответ. Кстати, второй ответ от пользователя2086490 имел то, что вы искали :) –

+0

hmmmmm ... ну, не совсем, поскольку я не ищу, чтобы изобретать колесо - если есть функция API, а не определение пользовательского функцию с делегатом и цикл для вызова вместо этого, тогда я бы предпочел функцию API - если не будет существенной разницы. Кроме того, вы были здесь вчера, а user2086490 не вернулся с 2 мая в 14:47. Конечно, некоторые люди действительно могут использовать цикл или функцию или могут что-то сделать с самой администрацией фермы или с одним или несколькими ее членами, и ваш ответ не предоставляет этих вещей, поэтому ... они оба полезные –

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; 
    } 
Смежные вопросы