c#上传文件到sharepoint(2个问题)
本文关键字:2个 问题 sharepoint 文件 | 更新日期: 2023-09-27 17:49:26
我创建了一个webservice,可以上传文件到我的sharepoint站点库。下面是我到目前为止的代码:
[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的凭据设置为客户端应用程序的凭据,但它没有改变它。
如何将此更改为正在使用web服务的用户的登录名?
示例:myDomain/User1
上传的文件
谢谢gen -
[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;
}
第二个问题的答案:
SPUserToken token = new SPSite(destUrl).RootWeb.EnsureUser(userName).UserToken;
SPWeb site = new SPSite(destUrl, token).OpenWeb();