自域迁移以来,Webdav未能使用集成身份验证

时间:2009-07-14 12:05:17

标签: c# webdav

我们有一个使用webdav的程序,通过Windows身份验证进行身份验证,因此用户无需键入其用户名和密码。这工作正常,直到我们迁移域名。现在用于连接的代码返回错误代码5(访问被拒绝):

string psPassword =null, psUsername=null;
structNetResource stNetRes = new structNetResource();
stNetRes.iScope = 2;
stNetRes.iType = RESOURCETYPE_DISK;
stNetRes.iDisplayType = 3;
stNetRes.iUsage = 1;
stNetRes.sRemoteName = WebDAVServerpath;
stNetRes.sLocalName = null; //connect, but don't show drive in my computer
int iFlags = CONNECT_CMD_SAVECRED;
int i = WNetAddConnection2A(ref stNetRes, psPassword, psUsername, iFlags);

有没有人知道如何解决这个问题?我试过了

int j = WNetCancelConnection2A(WebDAVServerpath, CONNECT_UPDATE_PROFILE, 0); 

事先清除任何旧连接,但这不起作用。

(正在运行net use \\server.domain.com\share提示输入用户名和密码,而在用于直接连接之前,所以它看起来像是在与Windows身份验证相互作用。)

编辑 - 这是一个WinForms应用程序,IIS和共享文件存储在同一台机器上。该问题仅发生在已迁移的计算机上;已经(现在仍然)超出我们域名的PC不受影响。

1 个答案:

答案 0 :(得分:1)

如果您的文件服务器和Web服务器不是同一台计算机,则需要设置文件服务器以信任Web服务器以进行委派。这允许文件服务器信任Web服务器已验证的凭据,而不是在每个请求上重新提示凭据。