相关疑难解决方法(0)

使用用户名和密码连接到网络驱动器

如何提供凭证以便我可以连接到.NET中的网络驱动器?

我正在尝试从网络驱动器检索文件,并需要提供用户凭据才能访问该驱动器.

.net c#

21
推荐指数
4
解决办法
10万
查看次数

File.Copy()到具有网络凭据的文件服务器

我正在编写控制台应用程序,它将文件从我的本地磁盘复制到文件服务器.此文件夹受用户名和密码保护.File.Copy()方法不起作用.它给出了权限错误.我看过这段代码

我试过了,但它不起作用.首先它是用VB编写的,但我已经将代码更改为C#,但是有一些错误.我不知道这个错误是什么意思.也许你可以告诉我其他方式应对文件到受保护的文件服务器

用简单的File.Copy(bla bla)它给了我"你没有许可"

当我将VB代码转换为C#时,它给出了以下错误:尝试读取或写入受保护的内存

我找到了解决方案

你可以关注它

c# file-io

14
推荐指数
1
解决办法
7万
查看次数

通过文件共享,用户身份验证通过网络复制文件

我正在构建一个.net C#控制台程序,以将文件部署到Windows文件共享服务器(正在共享的文件夹).路径是::\\192.168.0.76\htdocs\public

在运行时我收到错误:

[09:35:29]: [Step 1/3] Unhandled Exception: System.UnauthorizedAccessException: Access to the path '\\192.168.0.76\htdocs\public' is denied.
[09:35:29]: [Step 1/3]    at DeployFileShare.Program.CopyDir(String source, String dest, String[] exclude, Boolean overwrite)
[09:35:29]: [Step 1/3]    at DeployFileShare.Program.Deploy(String num, String source)
[09:35:29]: [Step 1/3]    at DeployFileShare.Program.Main(String[] args)
[09:35:29]: [Step 1/3] Process exited with code -532459699
Run Code Online (Sandbox Code Playgroud)

我想我需要对自己进行身份验证.我遇到过这个:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity idnt = new WindowsIdentity(username, password);
WindowsImpersonationContext context = idnt.Impersonate();
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

AppDomain.CreateDomain("192.168.0.76").SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity idnt = new WindowsIdentity("user", "pass");
WindowsImpersonationContext context = idnt.Impersonate();
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用它.当我运行应用程序时,我得到:

C:\Users\Administrator>DeployFileShare 1 R:\BuildOutput\_PublishedWebsites\Web 2 …
Run Code Online (Sandbox Code Playgroud)

.net c# impersonation fileshare appdomain

11
推荐指数
2
解决办法
2万
查看次数

C#使用其他域/用户名/密码将文件复制到另一个目录

在c#2008中,我正在尝试将文件复制到目标路径(例如\newserver\destinationFolder),该路径可以位于另一个域中,也可以使用与当前用户不同的用户名/密码.如何在执行File.Copy(...)之前指定这些新的网络凭据?

谢谢!

c# dns copy file username

7
推荐指数
1
解决办法
5659
查看次数

在c#中使用身份验证复制文件

我试图将文件从本地驱动器复制到服务器上的文件夹之一.服务器上文件夹的名称是"DBFiles".除了用户名'user'和密码'password1'之外,没有人可以访问此内容!

在处理文件之前,如果不存在则创建目录.

有人可以在创建目录'Test'时帮助获取访问权限,然后复制文件.

if (!Directory.Exists(@"\\server-a\copiedfiles\"))
    Directory.CreateDirectory(@"\\server-a\DBFiles\"+Test);   
File.Copy("C:\Temp\abc.txt", @"\\server-a\DBFiles\");
Run Code Online (Sandbox Code Playgroud)

这是c#中的原始代码.

NetworkShare.DisconnectFromShare(@"\\server-a\DBFiles", true); //Disconnect in case we are currently connected with our credentials;
NetworkShare.ConnectToShare(@"\\server-a\DBFiles", "user1", "password1!"); //Connect with the new credentials

File.Copy(@"c:\temp\T1.txt", @"\\server-a\DBFiles\T1.txt");

NetworkShare.DisconnectFromShare(@"\\server-a\DBFiles", false); //Disconnect from the server.
Run Code Online (Sandbox Code Playgroud)

它因拒绝访问而给出错误.

.net c#

7
推荐指数
2
解决办法
4万
查看次数

IIS 中的 Web 应用程序访问需要凭据的远程文件共享的最佳方式?

我有一个托管在 Windows Server 2008 R2 IIS 7.5 上的 Web 应用程序,需要访问另一台 Windows 计算机上的远程目录文件共享。我的网站在 User1 下运行,通过 UNC 路径访问远程文件共享需要 User2 的用户名/密码凭据。

在试图找到最好的方法来做到这一点时,我遇到了各种选择,但我并不真正理解其中的陷阱。

我们关心的问题之一是性能 - 我们不想打开/关闭或验证每个请求。到目前为止,我见过的许多解决方案都会在每次操作后处理连接。我认为我真正正在寻找的是一种持久映射网络驱动器的形式。

那么所有这些选项之间有什么区别呢?任何人都可以提供最佳实践是什么,以及示例代码(如果尚未在下面的帖子之一中提供)吗?

  1. 使用 WAddNetworkConnection2
  2. 使用 WAddNetworkConnection3
  3. 使用 WNetUseConnection
  4. 使用 NetUseAdd
  5. 启动命令 shell 并调用“net use”
  6. 冒充?
  7. 持久映射网络驱动器?但谁来创造这个呢?
  8. IIS 虚拟目录支持吗?

一些相关帖子:

使用凭据从远程、不受信任的域访问共享文件 (UNC)

使用用户名和密码连接到网络驱动器

连接到网络共享时如何提供用户名和密码

http://forums.asp.net/t/1915751.aspx?C+Access+Network+Drive+Without+mapping+with+credentials

谢谢你!

c# windows file-sharing unc remote-access

5
推荐指数
0
解决办法
1030
查看次数

将文件复制到我无权访问的网络共享

这是这个问题的延伸

我正在尝试将文件从本地用户的临时文件夹复制到远程文件共享.我无法访问远程文件共享,因此我必须冒充用户.

现在,我可以从远程服务器成功读取文件并在本地复制它,但是我无法将本地文件写入共享,因为它给了我错误:

LOCAL文件的访问被拒绝

(因为我现在冒充另一个用户).

如果你需要一些代码,我可以发布它.

c# security impersonation file-copying

4
推荐指数
1
解决办法
5799
查看次数

使用其他用户凭据从远程路径获取FileStream文件

在我的应用程序中,我FileStream用来从文件中读取,即文件共享在网络中的某个位置.所以我的remoteFilePath变量是这样的:\\computername\folder\file.pdf

FileStream fileStream = new FileStream(remoteFilePath, FileMode.Open, FileAccess.Read, FileShare.None, 1024 * 1024)
Run Code Online (Sandbox Code Playgroud)

不幸的是,我正在运行此应用程序的用户(我已登录到PC)无法访问此文件共享.我有另一个用户(域名,登录名和密码),可以访问这些文件.

是否可以使用其他用户凭据将文件转换为文件流?我可以冒充用户获取文件,然后继续使用我自己的用户吗?

c# credentials filestream

4
推荐指数
1
解决办法
3万
查看次数

远程共享文件夹和驱动器 C#

我想通过网络为 C# 中的机器访问远程机器上的驱动器/文件夹/子文件夹/文件。

我知道为此使用 WMI。但是,由于安全权限,WMI 可能无法在远程计算机上执行。

在 C# 中枚举远程计算机的文件夹/子文件夹/文件的替代方法是什么。

谢谢!加根

c# networking

4
推荐指数
2
解决办法
1万
查看次数

从Azure网站访问文件共享

我们有一个Web应用程序,包含三个主要部分:

  1. 运行ASP.NET 4.5网站的Web服务器;
  2. 托管SQL Server 2012的数据库服务器;
  3. 另一台托管后台使用的旧版应用程序的服务器;

部件之间的关系如下:

  • Web应用程序运行时将App Pool Identity设置为名为Foo的本地用户,并使用Entity Framework消耗数据库;

  • 旧版应用程序使用数据库并定期将文件系统中的数据更改导出为XML文件,使用Windows文件共享功能将文件夹共享给本地用户Foo(本地用户具有与Web服务器上相同的密码);

  • Web应用程序监视新数据的文件共享,并导入所有更改(如果有);

现在我们想将此应用程序迁移到Azure.不幸的是,我们必须使用VM for SQL Server,因为我们的旧应用程序数据库使用Azure SQL上不可用的文件流功能.此外,我们需要另一个VM用于遗留应用程序.

目前我最终得到以下结果:

  1. 在Azure上创建了一个新的虚拟网络;

  2. 创建了一个新的Azure网站,并使用Point-To-Site VPN连接将其连接到VNET;

  3. 为SQL Server和传统应用创建了2个VM,并连接到VNET,将网络标记为专用网络,禁用防火墙;

一切正常,除了一件事 - 网站无法访问位于旧版App VM上的文件共享.我试图向所有人启用共享,但无济于事.

所以,我的问题是:是否可以从Azure网站访问文件共享?如果没有,我有什么替代品?

我知道我们可以为网站启动另一个VM然后我没有问题,但我想使用Azure网站来优化成本并使用所有Azure好东西.

asp.net file-sharing azure azure-web-sites

2
推荐指数
1
解决办法
2348
查看次数