请问高手,如何用WNetAddConnection2连接XP的共享资源?

孤客天涯 2005-07-29 11:11:28
BOOL CScrPluginView::EstablishConnection( LPCTSTR lpszRemote, LPCTSTR lpszResource, LPCTSTR lpszUser,LPCTSTR lpszPassword,BOOL bEstablish )
{
TCHAR szRemoteResource[_MAX_PATH];

DWORD rc;

// Remote resource, \\remote\ipc$, remote\admin$, ...
_stprintf( szRemoteResource, _T("\\\\%s\\%s"), lpszRemote, lpszResource );

//
// disconnect or connect to the resource, based on bEstablish
//
if ( bEstablish )
{
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL;
nr.lpRemoteName = (LPTSTR)&szRemoteResource;
nr.lpProvider = NULL;

//Establish connection (using username/pwd)
rc = WNetAddConnection2( &nr, lpszPassword, lpszUser, FALSE );

switch( rc )
{
case ERROR_ACCESS_DENIED:
case ERROR_INVALID_PASSWORD:
case ERROR_LOGON_FAILURE:
case ERROR_SESSION_CREDENTIAL_CONFLICT:
// Prompt for password if the default(NULL) was not good
if ( lpszUser != NULL && lpszPassword == NULL )
{
//Establish connection (using username/pwd) again
rc = WNetAddConnection2( &nr, lpszPassword, lpszUser, FALSE );
}
break;
}
}
else
// Disconnect
rc = WNetCancelConnection2( szRemoteResource, 0, NULL );

if ( rc == NO_ERROR )
return TRUE; // indicate success

return FALSE;
}

我是用以上代码进行连接,在2000,nt下都可以能过,但在XP下则不灵了,我做了几次测试,如果XP将User用户禁止,连接是老报"未知的用户名或错误密码",如果开启User用户,即使以Administrator身份登录也报"拒绝访问"错误,这是为什么?
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2005-07-30
  • 打赏
  • 举报
回复
XP是否默认防火墙拦截了,注意它的安全中心设置
AntonlioX 2005-07-30
  • 打赏
  • 举报
回复
up
lifengice0706 2005-07-30
  • 打赏
  • 举报
回复
看看在别的机子上用c$能否访问那个机子的c盘。如果不能的话,看看是不是在reg里被禁掉了。那一项好像是lanmanserver下的autoshareserver,为0的话就被禁了,删掉即可。
孤客天涯 2005-07-29
  • 打赏
  • 举报
回复
re DentistryDoctor:
你所说的管理共享是指?
DentistryDoctor 2005-07-29
  • 打赏
  • 举报
回复
你是不是在XP下禁用了管理共享?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧