带用户名密码---远程访问另一台主机中共享文件夹中文件
来源:互联网 发布:数字信号视频播放软件 编辑:程序博客网 时间:2024/05/16 10:32
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");
}
}
}
- 带用户名密码---远程访问另一台主机中共享文件夹中文件
- 10: docker 主机远程访问另一台docker 主机
- mysql远程访问另一台主机数据库表
- .net使用用户名和密码访问远程共享文件夹的两种方法
- 如何设置共享文件夹访问不需要输入用户名和密码
- 如何更改访问共享文件夹的用户名和密码
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- 如何更改访问共享文件夹的用户名和密码
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- C# 访问共享文件夹或者磁盘(需要用户名密码)
- 程序中访问远程共享文件夹
- 远程访问共享文件夹
- win8 中如何删除 共享文件夹 用户名和密码
- 局域网访问另一台电脑的c盘文件夹以及远程连接桌面的命令
- C++访问一个带密码的共享文件夹的方法
- Ubuntu16.4中访问另一台Ubuntu16.4中共享出来的目录
- Windows访问远程共享文件夹
- 访问共享文件夹需要密码?
- 不要把多态应用在数组 [3.2]
- 日语四级主要句型
- ARCGIS拓扑检查步骤
- 传说中的减肥............
- Oracle查询某个字段的第一个字为汉字的查询方法
- 带用户名密码---远程访问另一台主机中共享文件夹中文件
- 从此开始新的生活
- 木马常用攻击手段-修改系统文件
- vc连接access全解(转载)
- j2me API 系统属性列表
- SEO工具|站长必备工具
- IT人不可不听的10个职场故事
- javascript获取本机ip地址 mac地址 机器名
- iframe加载时的loading效果,兼容Firefox