none
сверка с группой из AD RRS feed

Все ответы

  • так ведь можно :

     public override void ItemUpdating(SPItemEventProperties properties)
           {
               base.ItemUpdating(properties);
               if (        IsMember() == true )
               {
                   //do something!
               }
               else
               {
                   properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
                   properties.RedirectUrl = "/_Layouts/ApplicationPage1.aspx";
               }
              
               
            }
           private bool IsMember()
           {
               bool isMember;
               SPSite site = new SPSite(SiteURL);
               SPWeb web = site.OpenWeb();
               isMember = web.IsCurrentUserMemberOfGroup(web.Groups["GroupName"].ID);
               web.Close();
               site.Close();
               return isMember;
           } 

    скажите пожайлуста , что я должен вставить взаместо агумента SiteURL & 

    тот сайт к которому я прицепляю обработчик ?

    10 апреля 2012 г. 13:03
  • "GroupName" = Company\общий отдел.юристы - не принимает.

    надо по другому

    10 апреля 2012 г. 13:24
  • GroupName = Общий отдел. Юристы
    10 апреля 2012 г. 13:30
  • вообщем, помогите пожайлуйста
    надо использовать System.DirectoryServices .
    нужно задать фильтрацию по текущему пользователю. ( булевкое значение тру или нет )
    за параметр фильтрации можно взять loginName ( он вроде уникален )
    я немного не понимаю вот эту строчку :
    deSearch.Filter = "(&(objectClass=user) (cn=" + username + "))"; 

    могу ли я вместо username поставить loginName &
    // надо через System.DirectoryServices 
            // задаю директорию моей группы 
            public static DirectoryEntry GetDirectoryEntry()
            {
                DirectoryEntry de = new DirectoryEntry("sdfg://ollolo.lan");
                return de;
            }
            // надо как-то написать метод который проверяет текущего пользователя на принадлежность к моей диретории 
            public bool UserExists(string username)
            {
                DirectoryEntry de = GetDirectoryEntry();
                DirectorySearcher deSearch = new DirectorySearcher();
                deSearch.SearchRoot = de;
                deSearch.Filter = "(&(objectClass=user) (cn=" + username + "))";  // фильтрайия по username ( username - loginName ) )
                SearchResultCollection results = deSearch.FindAll();
                return results.Count > 0;
            }
            // пока что проверяет просто пользователя .
            // надо этого пользователя превратить в текущего пользователя
            //  есть разница между AD и группой sharepoint  
           // SPWeb web = SPContext.Current.Web;
            string username = ""; // web.CurrentUser.LoginName ; // текущий юзер , текущий loginName

    спасибо!
    10 апреля 2012 г. 15:58
  • Данный код (web.IsCurrentUserMemberOfGroup) вам не подходит т.к. он проверят наличие пользователя в группе на сайте SharePoint, а не в группе AD.

    deSearch.Filter = "(&(objectClass=user) (cn=" + username + "))";

    Это нотация AD. Запустите программу ADSIEdit на сервере, чтобы узнать в каком виде нужно передавать значение, и какие вообще доступны свойства.


    Don't happy, be worry...

    10 апреля 2012 г. 16:30
  • 

    Группы и пользователей нужно задавать следующим образом - "Company\\NameGroup", "Company\\NameUser";

    Группы AD и группы Sharepoint это разные группы !!!

    11 апреля 2012 г. 9:26