Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过C使用不同的用户ID pwd登录到网络位置#_C#_Networking_Login_Path_Unc - Fatal编程技术网

C# 通过C使用不同的用户ID pwd登录到网络位置#

C# 通过C使用不同的用户ID pwd登录到网络位置#,c#,networking,login,path,unc,C#,Networking,Login,Path,Unc,我查看了互联网上的所有文章以找到解决方案,但无法解决此问题,因此向我们的社区寻求帮助 问题: 我正在通过C#net中设计的工具从一个使用不同用户名和windows登录凭据的网络位置复制文件并集成它们 网络路径看起来像=\\company.city.com 用户id:与windows登录id不同 我只需要登录到这个位置一次,然后它会一直登录,直到我注销,但我想在每次复制文件之前通过C#code登录 我尝试使用这个代码,但它不起作用,它给出错误,不确定为什么它可能将网络路径视为WebLoad。

我查看了互联网上的所有文章以找到解决方案,但无法解决此问题,因此向我们的社区寻求帮助

问题: 我正在通过C#net中设计的工具从一个使用不同用户名和windows登录凭据的网络位置复制文件并集成它们

网络路径看起来像=\\company.city.com 用户id:与windows登录id不同

我只需要登录到这个位置一次,然后它会一直登录,直到我注销,但我想在每次复制文件之前通过C#code登录

我尝试使用这个代码,但它不起作用,它给出错误,不确定为什么它可能将网络路径视为WebLoad。

     WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com");
    \\or WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com\\folder");
    request.Method = request.Method.Clone;

    request.Credentials = new NetworkCredential("user_id","password");

    WebResponse response = (WebResponse)request.GetResponse();

    Stream responseStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(responseStream);
    Console.WriteLine(reader.ReadToEnd());

这是web服务器还是文件夹?查看代码,我假设这是一个通过UNC路径的文件夹,而不是由web服务器提供服务的文件夹。如果是这样,您尝试附加的方法就好像您使用网络凭据调用安全网页一样。虽然它们的工作原理似乎相同,但在网络上进行身份验证以访问共享和在网站或web服务上抛出网络凭据是完全不同的功能


您需要做的是Windows模拟,而不是向套接字通信添加凭据。这就是我开始谷歌之旅的地方。我没有在.NET4.0上闲逛过,但在以前的版本中,这意味着在一些本机windows库上使用P/Invoke。一旦您解决了身份验证和授权问题,就可以更轻松地获取文件

上面代码示例中的哪一行失败了?错误是什么?在联机控制台上失败。WriteLine(reader.ReadToEnd());即使有正确的用户凭据,它也会显示“拒绝访问”错误,即即使我有正确的用户凭据,访问也会被拒绝。因此,如果您希望以非编程方式提取文件,您能获取它吗?还是您仍然拒绝访问?如果仍然存在问题,则可能存在域信任问题。如果不是问题,那么编程的方式是核心问题,而不是访问。您必须首先确定这一点。接下来的问题是编程方向,尝试HTTP安全方法将不适用于windows身份验证。看看这是否有帮助()。一个有趣的小类,用于获取具有安全上下文的文件(甚至模拟不存在的用户?)。