我们有文档库的自定义上传页面。 在上传页面上,我们有一个人选择器字段, (用户可以输入多个用户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但没有成功......
任何人请告诉我如何解决此问题或使用人员选择器的替代方法
答案 0 :(得分:0)
您需要在提升的权限下创建新网站和Web对象,而不是使用Web对象的SPContext。
SPWeb web=SPControl.GetContextWeb(Context)
您需要在提升的权限下使用此功能:
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using(SPWeb web = site.OpenWeb())
{
....
}
}