.net使用用户名和密码访问远程共享文件夹的两种方法
来源:互联网 发布:防晒伞 知乎 编辑:程序博客网 时间:2024/05/17 20:28
一、
以下是访问远程机器上的某个共享文件夹的例子:
E盘的目录清单。
try
{
ManagementScope ms = new ManagementScope(@"\\192.168.8.12");
ConnectionOptions conn = new ConnectionOptions();
conn.Username = "用户名";
conn.Password = "口令";
ms.Options = conn;
ms.Connect();
// ManagementObject disk = new ManagementObject(ms,new ManagementPath("Win32_logicaldisk='d:'"),null);
// disk.Get();
DirectoryInfo di = new DirectoryInfo(@"\\192.168.8.12\e$");
StringBuilder sb = new StringBuilder();
foreach(DirectoryInfo subDIR in di.GetDirectories())
{
sb.Append(subDIR.Name + "\n\r");
}
MessageBox.Show("OK\n\r" + sb.ToString());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
另参考:
private void button1_Click(object sender, System.EventArgs e)
{
ConnectionOptions co = new ConnectionOptions();
co.Username = "Administrator";
co.Password = "xxxxxxxxxxxxxxxxxxxx";
System.Management.ManagementScope ms = new System.Management.ManagementScope("////218.241.42.116//root//cimv2", co);
}
private void button2_Click(object sender, System.EventArgs e)
{
Process.Start("////litao-mclpal8fv//temp//text.txt");
//Process.Start("d://temp//text.txt");
}
二、原帖地址 http://blog.csdn.net/godpreserve/article/details/2862347
using System.Runtime.InteropServices;
using System;
using System.ComponentModel;
using System.IO;
enum LogonType : uint
{
Interactive = 2,
Network = 3,
Batch = 4,
Service = 5,
Unlock = 7,
NetworkClearText = 8,
NewCredentials = 9
}
enum LogonProvider : uint
{
Default = 0,
WinNT35 = 1,
WinNT40 = 2,
WinNT50 = 3,
}
class IdentityScope : IDisposable
{
[DllImport("Advapi32.dll")]
static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword,
LogonType dwLogonType, LogonProvider dwLogonProvider, out IntPtr phToken);
[DllImport("Advapi32.DLL")]
static extern bool ImpersonateLoggedOnUser(IntPtr hToken);
[DllImport("Advapi32.DLL")]
static extern bool RevertToSelf();
[DllImport("Kernel32.dll")]
static extern int GetLastError();
bool disposed;
public IdentityScope(string domain, string userName, string password): this(domain, userName, password, LogonType.Interactive, LogonProvider.Default)
{
}
public IdentityScope(string domain, string userName, string password, LogonType logonType, LogonProvider logonProvider)
{
if (string.IsNullOrEmpty(userName))
{
throw new ArgumentNullException("userName");
}
if (string.IsNullOrEmpty(domain))
{
domain = ".";
}
IntPtr token;
int errorCode = 0;
if (LogonUser(userName, domain, password, logonType, logonProvider, out token))
{
if (!ImpersonateLoggedOnUser(token))
{
errorCode = GetLastError();
}
}
else
{
errorCode = GetLastError();
}
if (errorCode != 0)
{
throw new Win32Exception(errorCode);
}
}
~IdentityScope()
{
Dispose(false);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// Nothing to do.
}
RevertToSelf();
disposed = true;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
public class test
{
//下面是一个测试函数:
public static void aaa()
{
using (new IdentityScope(@"10.0.0.68", "aaa", "qwert", LogonType.NewCredentials, LogonProvider.WinNT50))
{
File.Copy("////10.0.0.68//autotxt//2008-3-24 17.22.28.txt", @"C:/rere.txt");
}
}
}
1.System.Diagnostics.Process.Start("net.exe","use \\\\"+ "192.168.0.1"+" /user:\""+ strUserName +"\" \""+ strUserPD +"\"");
(vb.net: System.Diagnostics.Process.Start("net.exe","use \\192.168.0.1 password /user:strUserName")
3.StreamReader mStm
=new StreamReader(@"\\192.168.0.1\C\test.Doc",System.Text.Encoding.Default);
- .net使用用户名和密码访问远程共享文件夹的两种方法
- 如何更改访问共享文件夹的用户名和密码
- 如何更改访问共享文件夹的用户名和密码
- 使用需要用户名和密码访问的samba共享
- 如何设置共享文件夹访问不需要输入用户名和密码
- 当访问共享文件夹时需输入用户名和密码的解决办法
- CentOS访问Windows共享文件夹的两种方法
- CentOS访问Windows共享文件夹的两种方法 .
- linux访问windows共享文件夹的两种方法
- linux访问windows共享文件夹的两种方法
- CentOS访问Windows共享文件夹的两种方法
- 带用户名密码---远程访问另一台主机中共享文件夹中文件
- 如何取消server2003的共享文件和文件夹使用时的用户名和密码
- 清除windows访问共享的用户名和密码
- windows系统共享文件夹访问无需验证(输入用户名和密码)即可进入
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- squid优化链接
- C++11 线程、锁和条件变量
- 鼠标滑过图片出现大图片提示层效果js代码
- 关于大数据处理和Hadoop的一些文章【持续更新】
- jsp中(s标签)各种基本的表达
- .net使用用户名和密码访问远程共享文件夹的两种方法
- Web 自动化测试原理
- 表单form的enctype="multipart/form-data"使用体会
- SQLite3 使用教学
- animalの鳴き声
- 第十四周项目2
- POJ3468(线段树+延迟更新)
- 14_3Shape
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句