Windows 8 内置 WebDAV 客户端忽略 401 Unauthorized
Posted
技术标签:
【中文标题】Windows 8 内置 WebDAV 客户端忽略 401 Unauthorized【英文标题】:Windows 8 built-in WebDAV client ignores 401 Unauthorized 【发布时间】:2014-11-14 00:36:47 【问题描述】:我使用 Windows 8 内置 WebDAV 客户端 (Microsoft-WebDAV-MiniRedir) 创建了一个 webdav 连接。 我只有文件的读取权限并尝试删除一个。 我可以通过右键单击上下文菜单打开并删除它,尽管我的 WebDAV 服务器返回 401 Unauthorized。该文件在资源管理器中消失,就像它已被删除一样。 如果我关闭资源管理器窗口并再次打开它,文件又回来了,没关系。 为什么删除没有被拒绝,为什么我没有从 WebDAV 客户端收到类似“401 未授权访问”的错误消息?
这是请求和响应。 要求:
DELETE https://xxx.yyy.zz/webdav/mysharedfolder/file1.txt HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/6.3.9600
translate: f
Host: xxx.yyy.zz
Authorization: Basic dlk7uXNvcmt1QHdlYi5kZTpRd2VyMTIzNA==
Cookie: JSESSIONID=A7497F42472ECC676E44A90E3C5D5E7
回复:
HTTP/1.1 401 Unauthorized
Date: Thu, 13 Nov 2014 23:21:43 GMT
Server: Apache-Coyote/1.1
WWW-Authenticate: Basic realm="https://xxx.yyy.zz/webdav/mysharedfolder/file1.txt"
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8
【问题讨论】:
您的服务器是否在 OPTIONS 请求中正确报告了支持的方法? 感谢您指出这一点。 OPTIONS 请求的响应是“HTTP/1.1 302 Found”和“Location:navigationshilfe1.t-online.de/dnserror?url=http://netdrive2”,之后 OPTIONS 被重定向到这个站点并且响应是“HTTP/1.1 200 OK”和“Allow: GET,HEAD,POST ,选项,跟踪” 我也遇到了同样的问题,有人解决了吗?返回 401 被 windows shell 完全忽略,文件消失。 【参考方案1】:对 OPTIONS 请求(或实际上在任何 webdav 请求中)的重定向是可疑的,我不认为 windows 会正确处理它,所以这可能是值得关注的。但我也依稀记得在几年前遇到过类似Win7的东西。解决方法可能是为微型重定向器代理返回不同的 4xx 错误代码。
【讨论】:
以上是关于Windows 8 内置 WebDAV 客户端忽略 401 Unauthorized的主要内容,如果未能解决你的问题,请参考以下文章
自定义 WebDAV 服务器不适用于 Windows 7 微型重定向器
私有云 Windows IIS搭建webdav服务实现公网文件共享「内网穿透」