【发布时间】:2012-03-15 08:53:49
【问题描述】:
我在创建 TermSetGroup 时遇到了问题。我的代码如下所示:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//create new group if the groupName was not created.
Group group = termStore.Groups.Where(g => g.Name == groupName).Count() > 0 ? termStore.Groups[groupName] : termStore.CreateGroup(groupName);
//create new term set if the termSetName was not created.
TermSet termSet = group.TermSets.Where(s => s.Name == termSetName).Count() > 0 ? group.TermSets[termSetName] : group.CreateTermSet(termSetName);
termSet.Owner = TermSetOwner;
//add terms to term set.
int lcid = CultureInfo.CurrentCulture.LCID;
foreach (string termName in terms)
{
if (termSet.GetTerms(termName, false).Count <= 0)
{
termSet.CreateTerm(termName, lcid);
}
}
termStore.CommitAll();
});
如果我在单独的控制台项目中使用此代码,它实际上可以工作。它创建了我的组,并且在这个组中还创建了 TermSet。但是当我在工作流中调用的 web 服务中使用此代码时,它告诉我,我的用户没有创建组的权限。 当组存在时,它可以工作,并且可以创建 TermSet。
当我使用“RunWithElevatedPrivileges”时,怎么会这样? 启动工作流的用户是站点管理员。甚至 Termstore 管理员也是站点管理员......所以我在这里做错了什么?
【问题讨论】:
标签: c# sharepoint permissions