Mam PeopleEditor:Sharepoint PeopleEditor: Jak dowiedzieć się, jaki typ użytkownika/grupy został zwrócony?
<SharePoint:PeopleEditor ID="peopleEdit" ... SelectionSet="User,DL,SecGroup,SPGroup" />
To działa bez zarzutu na stronie, to mogę wybrać użytkownikom reklam, grup SharePoint i nic by mi się podoba.
Problem polega na tym, że nie mogę znaleźć właściwości na PeopleEditor z jaki rodzaj użytkownika/grupy jest zwracany. Weźmy następujący przykład:
//User: John Doe - mycompany\jondoe is at position 0
//Sharepoint group: "All Site Users" is at position 1
PickerEntity pickerEntity1 = (PickerEntity).peopleEdit.ResolvedEntities[1];
// pickerEntity1.Key = "All Site Users"
// pickerEntity1.Claim = null
// pickerEntity1.DisplayText = "All Site Users"
PickerEntity pickerEntity0 = (PickerEntity).peopleEdit.ResolvedEntities[0];
// pickerEntity1.Key = "mycompany\jondoe"
// pickerEntity1.Claim = null
// pickerEntity1.DisplayText = "Doe, John"
mogę zrobić jakieś „hackish” rzeczy jak próbuje rzucić powrócił string [sic] wartość jako użytkownik lub jako grupa i zrobić jakiegoś wyjątku na podstawie przebiegu programu (jeśli użytkownik istnieje, to, jeśli istnieje grupa itp.), ale nie uznałbym tego czystego kodu.
Czy istnieje lepsza metoda wybierania osób/grup w SharePoint lub lepsza metoda pracy z PeopleEditor?
Ahhh, idealny! Aby wyświetlić listę wszystkich informacji, jakie posiada ta jednostka, przydatna jest tablica '.EntityDataElements'. Dla grupy SPG zawiera ona "SPGroupID", "AccountName", "PrincipalType" –
Może to być, że zawiera wartości z 'Microsoft.SharePoint.Utilities.SPPrincipalType' enum. Ale nie przetestowałem tego. Proszę bardzo: '[Flags] public enum SPPrincipalType { = None, użytkownika = 1, DistributionList = 2, SecurityGroup = 4, SharePointGroup = 8, All = SharePointGroup | SecurityGroup | DistributionList | Użytkownik, } ' –
@moontear Dodałem twój komentarz do odpowiedzi, ponieważ zawiera ona cenne informacje iw ten sposób jest bardziej czytelny. –