0
创建TermSetGroup时出现问题。我的代码如下所示:通过代码在Sharepoint中添加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。但是,当我使用webservice(这是在工作流中调用的)中使用此代码时,它告诉我,我的用户没有创建组的权限。 当该组存在时,它可以工作,并且可以创建TermSet。
这是怎么回事,当我使用“RunWithElevatedPrivileges”? 启动工作流程的用户是网站管理员。即使Termstore Admin是网站管理员......所以我在这里做错了什么?
web服务运行作为网站管理员,甚至如果我去做了与另一个管理员帐户,通过UserToken,它仍然不起作用。 – 2012-03-15 12:47:17
也许你需要从升级子句中引用termstore和TaxonomySession?看到我编辑的答案。 – 2012-03-15 14:34:00
好吧,我也试过,但仍然没有许可:/我真的不明白... – 2012-03-16 07:46:38