如题,在winform客户端访问可在外网访问的服务器共享文件夹,如果共享文件夹的访问权限都放开的话,匿名访问时可以的,现在想在次基础上实现通过用户名和密码访问,怎么去实现?
1、wmi
我查了些资料,说wmi可以做,试了一下总是报连接异常:rpc服务器不可用;而连接本地时则报:无法获取本地用户凭证;望各位解答!
2、映射网络硬盘
不知还有没有其他的方式呢?希望各位能给小弟关于这方面的比较全面的上一课,谢谢。
1、wmi
我查了些资料,说wmi可以做,试了一下总是报连接异常:rpc服务器不可用;而连接本地时则报:无法获取本地用户凭证;望各位解答!
2、映射网络硬盘
不知还有没有其他的方式呢?希望各位能给小弟关于这方面的比较全面的上一课,谢谢。
解决方案 »
- Stimulsoft Reports 报表问题
- Graphics方法填充一个多边形a,在多边形a中有个多边形b,我想用多边形b的范围镂空多边形a,即看到的是一个填充的环形。
- 接口实现的问题
- 请问怎样动态添加用户控件的属性?
- 如何实现圆规的功能?
- 使用ACCESS数据填充时遇到了一个问题!不知道有人遇到过没?
- 关于 Castle的原理及心得
- 做个拍号程序,从1-2000选出前1000个,号码随机出,但是最好避免最后没有1000以内的号,也就是前1000号出的比较平均点,用什么算法比较好
- 随机数问题
- 水晶报表中的公式字段,我想在公式编辑器里对其编码,但不知道如何写法?
- 关于LISTVIEWBOX项排序问题,急急急
- 如何求当前日期的上一天
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);
}
不知还有没有其他的方式呢?希望各位能给小弟关于这方面的比较全面的上一课,谢谢。ref:
http://blog.csdn.net/knight94/archive/2006/03/21/631309.aspx
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,可以解释一下么?
myNetResource.LocalName = yourNetDriveName;
myNetResource.RemoteName = yourNetworkPath; 这两个具体的值是什么
myNetResource.RemoteName = yourNetworkPath; //需要映射的共享文件夹的地址