WCF服务的SPListItem我有一个WCF服务,已使用Shail马利克指南部署到SharePoint以下方法:创建在部署到SharePoint
[OperationContract]
public string AddItem(string itemTitle, Guid? idOfListToUse)
{
using (var portal = new SPSite(SPContext.Current.Site.Url, SPContext.Current.Site.SystemAccount.UserToken))
{
using (var web = portal.OpenWeb())
{
Guid listId;
web.AllowUnsafeUpdates = true;
if (idOfListToUse != null && idOfListToUse.Value != new Guid())
{
listId = idOfListToUse.Value;
}
else
{
try
{
listId = new Guid(web.Properties[PropertyBagKeys.TagsList]);
}
catch (Exception ex)
{
throw new MyException("No List Id for the tag list (default list) has been found!", ex);
}
}
var list = web.Lists[listId];
string title = "";
SPSecurity.RunWithElevatedPrivileges(delegate{
var newItem = list.Items.Add();
newItem["Title"] = itemTitle;
newItem.Update();
title = newItem.Title;
});
web.AllowUnsafeUpdates = false;
return title;
}
}
}
当方法被从Javascript调用(使用Rick Strahl的优秀ServiceProxy.js)失败,并因为ValidateFormDigest()而在newItem.Update()上执行此操作。
虽然这是踢球者,但当我通过它的代码一步一步地工作!根本没有例外!
RunWithElevatedPriviliges只是一个试用版,整个代码块位于using语句中,该语句用SystemAccount的UserToken打开SPSIte。 – Colin 2009-12-02 11:50:49