webdav WebClient.Upload(401)未经授权

时间:2014-02-19 14:11:54

标签: c# webdav

我试图将文件上传到webdav服务器,但我得到(401)未经授权。我无法弄清楚我的问题是在服务器上还是在我的代码中?这是用于测试此代码的代码:

string sourceFilePath = @"C:\testfile.txt";
string webAddress = "http://ip:port/";
string destinationFilePath = webAddress + "testfile.txt";

WebClient webClient = new WebClient();
webClient.UseDefaultCredentials = true;
webClient.UploadFile(destinationFilePath, "PUT", sourceFilePath);
webClient.Dispose();

但是使用以下代码我可以从webdav服务器下载文件:

string webAddress = "http://ip:port/";
string sourceFilePath = webAddress + "testfile.txt";
string destinationFilePath = @"C:\testfile.txt";

WebClient webClient = new WebClient();            
webClient.UseDefaultCredentials = true;
webClient.DownloadFile(sourceFilePath, destinationFilePath);
webClient.Dispose();

服务器正在运行iis 8,并配置了webdav创作规则。 我已在服务器的目标文件夹上为我的用户设置了完全控制权。

编辑:意识到即使我删除了创作规则我也可以下载文件,为什么会这样?

创作规则如下所示:

http://i61.tinypic.com/55rqkg.jpg

1 个答案:

答案 0 :(得分:0)

安装并启用了Windows身份验证,解决了这个问题。 现在,我认为需要启用它似乎是逻辑......