我有一个DEV环境,我开发代码并使用本地Sharepoint。 我有一个TEST环境,我在其中部署我的应用程序并在TEST服务器上使用Sharepoint。 我正在使用Sharepoint 2010。 我有一个客户端对象模型,我用它来保存共享点服务器中的文档。 我正在使用Microsoft.Sharepoint.Client库获取以下代码;
public void Save(byte[] file, string url)
{
using (var context = new ClientContext(this.SharepointServer))
{
var list = context.Web.Lists.GetByTitle(this.DocumentLibrary);
var fileCreationInformation = new FileCreationInformation
{
Content = file,
Overwrite = true,
Url = url
};
var uploadFile = list.RootFolder.Files.Add(fileCreationInformation);
uploadFile.ListItemAllFields.Update();
context.ExecuteQuery();
}
}
}
当我在开发环境中运行此代码时,文档将按预期保存在Sharepoint上。 当我将文档保存到其他Sharepoint服务器时部署到测试环境时,我得到以下异常:
Microsoft.SharePoint.Client.ServerUnauthorizedAccessException:拒绝访问。您无权执行此操作或访问此资源。
所以这里有一个权限问题。
但是,当我在开发服务器上更改我的代码以将文档保存到测试服务器上的Sharepoint时,它可以正常工作。相同的Sharepoint无法在Test上部署的应用程序中保存文档。我也使用相同的用户名和密码登录表单身份验证。
那么为什么会发生这种情况呢?我应该在哪里修复它?
答案 0 :(得分:3)
我找到了我所缺少的东西
我需要设置上下文的凭据;
context.Credentials = new NetworkCredential(this.UserName, this.Password, this.Domain);