1

我们有一个使用 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 不受影响。

4

1 回答 1

1

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

于 2009-07-14T12:09:09.963 回答