I wrote a custom WebDAV server that authenticates users from a database and serves a virtual file system based on records from a database. It is working well with 3rd party WebDAV clients but does not work with Windows built-in mini-redirector when mapping a drive to the http location.
The strangest thing, is on my development PC where I wrote the server, I can connect just fine, however ANY other computer that tries to access the server, fails to connect with mini-redirector.
I have used Fiddler to analyze the network traffic and everything appears fine. When I try to map the drive, an OPTIONS header is sent and my servers responds with a 200 OK. Then mini-redirector sends a PROPFIND method with a depth of 0. My server responds back with a 401 unauthorized. This brings up a login dialog for user and password. After entering the password, a new PROPFIND request is sent but this time with the authorization header. Everything seems to work fine, my server accepts the login credentials and responds back with a 207 multistatus response with an "HREF" to the root directory. At this point, mini-redirector brings up the login prompt again and does so 3 times in total before failing to connect with an error saying the server cannot be found. What is weird, is the server IS found, I can see it in Fiddler, and the server is responding as expected.
Every other 3rd Party WebDAV client has a similar exchange with my server and connects and brings up a directory listing just fine. Only mini-redirector fails. And as I mentioned above, it works perfectly on my development machine with mini-redirector(although the IIS 7.5 server I am connecting to is not on my development machine). Every other computer fails to connect. I have made sure to use the registry hack to allow basic authentication over a non-secure HTTP site. I have even moved my server to a secure HTTPS site with an SSL cert just in case that was the issue, and it still doesn't work. Does anyone have any ideas. I am thinking it has to be something to do with my IIS 7.5 setup on the server, or a setting on all of the other client machines except my development machine, because my code appears to be fine, the server appears to respond fine to mini-redirectors requests, it just doesn't map the drive after the 207 multistatus response like it does with all other clients.
Any help would be greatly appreciated. What is frustrating is that I anticipated mini-redirector being the hardest to get working, so I made it work first on my development machine before testing it with all other clients, so I thought I was in good shape until I attempted to connect on other computers and saw that it was failing, but only with mini-redirector. Sadly mini-redirector is the easiest to use for my potential clients, so it is imperative that it works with mini-redirector. I can supply the response/requests from Fiddler if that would help anybody debug this with me.