客户端外网访问服务器共享文件夹访问用户控制

fengziyoyo 2006-10-22 11:22:42
如题,在winform客户端访问可在外网访问的服务器共享文件夹,如果共享文件夹的访问权限都放开的话,匿名访问时可以的,现在想在次基础上实现通过用户名和密码访问,怎么去实现?
1、wmi
我查了些资料,说wmi可以做,试了一下总是报连接异常:rpc服务器不可用;而连接本地时则报:无法获取本地用户凭证;望各位解答!
2、映射网络硬盘
不知还有没有其他的方式呢?希望各位能给小弟关于这方面的比较全面的上一课,谢谢。
...全文
860 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengziyoyo 2006-10-24
  • 打赏
  • 举报
回复
问题解决了,谢谢愚翁
fengziyoyo 2006-10-23
  • 打赏
  • 举报
回复
myNetResource.LocalName = yourNetDriveName;//映射到本地的盘符
myNetResource.RemoteName = yourNetworkPath; //需要映射的共享文件夹的地址
Knight94 2006-10-23
  • 打赏
  • 举报
回复
to
myNetResource.LocalName = yourNetDriveName;
myNetResource.RemoteName = yourNetworkPath;

这两个具体的值是什么
fengziyoyo 2006-10-23
  • 打赏
  • 举报
回复
刚才试了一下那段代码,没有实现,下面是我的代码:
string yourNetworkPath = ConfigurationSettings.AppSettings["yourNetworkPath"];
if(yourNetworkPath == "")
{
yourNetworkPath = this.textBox1.Text.Trim();
}
string pwd = ConfigurationSettings.AppSettings["pwd"];
string username = ConfigurationSettings.AppSettings["username"];
string yourNetDriveName = ConfigurationSettings.AppSettings["yourNetDriveName"];

NETRESOURCE myNetResource = new NETRESOURCE();

myNetResource.dwScope = 2; //2:RESOURCE_GLOBALNET

myNetResource.dwType = 1 ; //1:RESOURCETYPE_ANY

myNetResource.dwDisplayType = 3; //3:RESOURCEDISPLAYTYPE_GENERIC

myNetResource.dwUsage = 1; //1: RESOURCEUSAGE_CONNECTABLE

myNetResource.LocalName = yourNetDriveName;

myNetResource.RemoteName = yourNetworkPath;

myNetResource.Provider = null;

uint nretAdd = WNetAddConnection2( myNetResource, pwd, username, 0);

//注意:如果正确,返回值是0;否则错误。

//删除映射网络驱动器调用的代码如下:

//uint nretDel = WNetCancelConnection2( yourNetDriveName, 1, true);

string[] files1 = Directory.GetFiles(yourNetworkPath);

if(File.Exists(@"T:\vss\users.txt"))
{
FileInfo file = new FileInfo(@"T:\vss\users.txt");

}
nretAdd 的返回值是1219,并不时代表正确的0,可以解释一下么?

fengziyoyo 2006-10-23
  • 打赏
  • 举报
回复
感谢Knight94(愚翁)的支持,您的blog我已看过,正在研究,谢谢!
Knight94 2006-10-23
  • 打赏
  • 举报
回复
to 2、映射网络硬盘
不知还有没有其他的方式呢?希望各位能给小弟关于这方面的比较全面的上一课,谢谢。

ref:
http://blog.csdn.net/knight94/archive/2006/03/21/631309.aspx
fengziyoyo 2006-10-22
  • 打赏
  • 举报
回复
刚才网把wmi部分的包异常的代码贴出来了,异常代码如下:
ConnectionOptions options = new ConnectionOptions();
options.Username = "huang";//UserName; //could be in domain\user format
options.Password = "1234";//SecurelyStoredPassword;
ManagementScope scope = new ManagementScope("\\\\huang\\root\\cimv2",options);//"\\\\servername\\root\\cimv2",options);
try
{
scope.Connect();
ManagementObject disk = new ManagementObject(scope,new ManagementPath("Win32_logicaldisk='c:'"),null);
disk.Get();
}
catch (Exception ex)
{
Console.WriteLine("Failed to connect: " + ex.Message);
}

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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