我正在尝试使用.net程序访问本地SharePoint站点,但遇到了困难。
我不想使用SharePoint开发环境(可能有许多开发人员在这方面工作,这只是安装的一件事)。
我还想使其可配置,以便我可以更改网站和列表名称而无需重新编译。我不认为我可以使用服务参考来做到这一点。如果我可以,怎么样?
我也不希望用户输入sharepoint验证信息,我可以将sharepoint登录信息存储在.config文件中。
我相信我可以使用REST做到这一点,但无法弄清楚如何在不使用Sharepoint开发环境的情况下创建AccessToken。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我遇到的主要问题是不能理解您可以在request.Credentials属性中放置其他类型的凭据。这是我创建的代码:
public bool CopyFileToSharePoint(string fileName, Stream fileStream)
{
var data = new byte[fileStream.Length];
fileStream.Read(data, 0, (int) fileStream.Length);
fileStream.Close();
var sharePointPath =
SharePointWebSiteUrl + "/_api/web/lists/getByTitle('" + SharePointListName + "')" +
"/RootFolder/Files/add(url='" + fileName + "',overwrite='true')";
var request = (HttpWebRequest) WebRequest.Create(sharePointPath);
request.Credentials = new NetworkCredential(SharePointUserName, SharePointPassword, SharePointLoginDomain);
request.Method = "POST";
request.Accept = "application/atom+xml";
request.Headers["X-RequestDigest"] = GetFormDigest(SharePointWebSiteUrl);
request.ContentType = "application/txt";
request.ContentLength = data.Length;
request.GetRequestStream().Write(data, 0, data.Length);
var response = (HttpWebResponse) request.GetResponse();
return response.StatusCode == HttpStatusCode.OK;
}
我确定它并不完美,但确实有效。