我们有文档库的自定义上传页面。在上传页面上,我们有一个人员选择器字段,(用户可以输入多个用户 ID)人员选择器设计
<SharePoint:PeopleEditor ID="pplApprovers" runat="server" Width="250px" Height="25px" MultiSelect="true"/>
要从人员选择器中获取 emp id,我们使用以下代码
public ArrayList approversArray;
public SPFieldUserValueCollection approversCollection;
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
ArrayList aAccount1 = new ArrayList();
approversArray= pplApprovers.Entities;
approversCollection = new SPFieldUserValueCollection();
SPUser user;
SPGroup group;
SPUser currentUser;
SPWeb web=SPControl.GetContextWeb(Context);
currentUser=web.CurrentUser;
ArrayList aAccount = new ArrayList();
aAccount = pplApprovers.Accounts;
ArrayList peEntities = pplApprovers.Entities;
approversArray = pplApprovers.ResolvedEntities;
foreach (PickerEntity entity in approversArray)
{
if (entity.EntityData["PrincipalType"].ToString() == "SharePointGroup")
{
group = web.SiteGroups[entity.Key];
approversCollection.Add(new SPFieldUserValue(web,group.ID, group.Name));
}
else
{
//handles SecurityGroup, Distribution List and User
user = web.EnsureUser(entity.Key);
approversCollection.Add(new SPFieldUserValue(web,user.ID, user.Name));
}
}
});
catch (Exception ex)
{
// Manage error event
}
得到这个值后,我们将它插入到文档库中。
item.Item["Account Partner"]="approversCollection";
但是在单击上传按钮后,唯一具有站点管理员访问权限的用户可以成功上传文件,但其他没有管理员访问权限的用户会被重定向到 https://web/_layouts/AccessDenied.aspx 页面
我们尝试使用 SPSecurity.RunWithElevatedPrivileges 但没有成功......
任何人都请让我知道如何解决此问题或使用人员选择器的替代方式