问题描述
- C# 关于用进程执行cmd的net use的问题
- public string Connect(string remoteHost string userName string passWord)
{
string s = """";
if (!Ping(remoteHost))
{
return s;
}
bool Flag = true;
Process proc = new Process();
try
{
proc.StartInfo.FileName = ""cmd.exe"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @""net use "" + remoteHost + "" "" + passWord + "" "" + "" /user:"" + userName + "">NUL"";
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine(""exit"");
while (proc.HasExited == false)
{
proc.WaitForExit(1000);
}
string errormsg = proc.StandardError.ReadToEnd();
if (errormsg != """")
{
Flag = false;
}
proc.StandardError.Close();
}
catch (Exception ex)
{
return ex.Message;
Flag = false;
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return s;
}
我需要把 文件通过A服务器的WebService中的这个方法上传到B服务器中
现在上传是没问题而是上传之后把上面的代码注释掉 依然可以访问并不会出现那个
未知的用户名和密码""这个错误用cmd执行net use 也没看到这个的连接 进程也关闭了
有什么办法可以让清理掉这个类似于 记住账户名密码 的功能?
try
{
///定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream m = new System.IO.MemoryStream(infbytes);
//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。
string strFile = @""192.168.1.134E$"" + FileName;
num = ""//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。"";
///定义实际文件对象,保存上载的文件。
t_BC_Emp pt_BC_Emp = new t_BC_Emp();
//if (pt_BC_Emp.Ping(""192.168.1.134""))
//{
// num = pt_BC_Emp.Connect(""192.168.1.134""XH""1eqweer"");
// if (num == """")
// {
FileStream fl = new System.IO.FileStream(strFile FileMode.OpenOrCreate FileSystemRights.Modify FileShare.ReadWrite 8 FileOptions.None);
num = ""定义实际文件对象,保存上载的文件。"";
//FileStream fl = File.Create(strFile + FileName);
///把内内存里的数据写入物理文件
m.WriteTo(fl);
m.Close();
fl.Close();
m = null;
fl = null;
//}
//}
return num;
}
解决方案
不需要这么做,直接调用wnetaddconnection2 api即可
时间: 2024-09-15 17:14:09