Csharp/C#教程:Sharepoint PeopleEditor:如何找出返回的用户/组类型?分享


Sharepoint PeopleEditor:如何找出返回的用户/组类型?

我有一个PeopleEditor:

 

它在页面上完美运行,即我可以选择AD用户,Sharepoint组和我想要的任何东西。

问题是我在PeopleEditor上找不到返回什么类型的用户/组的属性。 我们来看下面的例子:

 //User: John Doe - mycompanyjondoe 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 = "mycompanyjondoe" // pickerEntity1.Claim = null // pickerEntity1.DisplayText = "Doe, John" 

我可以做一些“hackish”的事情,比如尝试将返回的字符串[sic]值转换为User或Group,并执行某种基于Exception的程序流程( 如果用户存在,请执行此操作,否则如果存在组等 ),但我不会考虑干净的代码。

有没有更好的方法在Sharepoint中选择人员/组或更好的方法来使用PeopleEditor?

使用EntityData哈希表中的PrincipalType值:

 string principalType = pickerEntity1.EntityData["PrincipalType"].ToString(); 

我不记得所有可能的值,但UserSharePointGroup肯定是其中之一。


moontear的评论:

要列出此实体具有的所有信息, EntityDataElements数组很有用。 对于SPGroup它包含SPGroupIDAccountNamePrincipalType


Janis Veinbergs的评论:

它可能包含来自Microsoft.SharePoint.Utilities.SPPrincipalType枚举的值,但我还没有测试过它。

干得好:

上述就是C#学习教程:Sharepoint PeopleEditor:如何找出返回的用户/组类型?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 [Flags] public enum SPPrincipalType { None = , User = 1, DistributionList = 2, SecurityGroup = 4, SharePointGroup = 8, All = SharePointGroup | SecurityGroup | DistributionList | User, } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/955931.html

(0)
上一篇 2021年11月22日
下一篇 2021年11月22日

精彩推荐