我创建了一个可以将文件上传到我的sharepoint站点库的Web服务。这是我到目前为止的代码:
[WebMethod]
public string getLibraries(byte[] contents, String destUrl){
String message = "1";
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWeb site = new SPSite(destUrl).OpenWeb();
site.AllowUnsafeUpdates = true;
message = "2";
EnsureParentFolder(site, destUrl);
site.Files.Add(destUrl, contents);
message = "3";
site.AllowUnsafeUpdates = false;
});
return message;
}
目前正在运作。但是在sharepoint中,您可以在库中添加新列。就像你想要添加文件的描述一样。
如何使用该文件上传这些额外的列?
我想弄清楚的另一件事:
现在它上传名为"System account"
的文件。我已经尝试将webservice的凭据设置为客户端应用程序的凭据,但它没有更改它。
如何将此更改为使用网络服务的用户的登录信息?
示例:myDomain/User1
感谢 -gen -
答案 0 :(得分:1)
[WebMethod]
public string getLibraries(byte[] contents, String destUrl, string description){
String message = "1";
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWeb site = new SPSite(destUrl).OpenWeb();
site.AllowUnsafeUpdates = true;
message = "2";
EnsureParentFolder(site, destUrl);
site.Files.Add(destUrl, contents);
message = "3";
SPListItem listItem = site.GetListItem(destUrl);
listItem["Description"] = description;
listItem.Update();
site.AllowUnsafeUpdates = false;
});
return message;
}
答案 1 :(得分:0)
我的第二个问题的答案:
SPUserToken token = new SPSite(destUrl).RootWeb.EnsureUser(userName).UserToken;
SPWeb site = new SPSite(destUrl, token).OpenWeb();