Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# asp.net和共享上的权限_C#_Asp.net - Fatal编程技术网

C# asp.net和共享上的权限

C# asp.net和共享上的权限,c#,asp.net,C#,Asp.net,我有一个应用程序需要更新另一台服务器上的txt文件。asp.net应用程序在iis6.0下运行。我尝试为运行应用程序的服务器设置共享权限。e、 g DOMAIN\ServerA$但是它仍然表示对路径blah blah的访问被拒绝 有什么想法吗?检查应用程序是否未将用户的凭据传递给共享,例如标识。模拟或通过Windows auth或类似工具 通过将HttpContext.Current.User.Identity.Name和HttpContext.Current.Server.MachineNam

我有一个应用程序需要更新另一台服务器上的txt文件。asp.net应用程序在iis6.0下运行。我尝试为运行应用程序的服务器设置共享权限。e、 g DOMAIN\ServerA$但是它仍然表示对路径blah blah的访问被拒绝


有什么想法吗?

检查应用程序是否未将用户的凭据传递给共享,例如
标识。模拟
或通过Windows auth或类似工具


通过将
HttpContext.Current.User.Identity.Name
HttpContext.Current.Server.MachineName
写入页面,检查您是否拥有正确的帐户/计算机名称。

您应该将IIS池标识更改为对您尝试更新的文件夹具有权限的用户。

首先确保路径可访问通过使用您自己的帐户手动访问服务器。我不知道你在哪里设立了什么机构(大公司、夫妻店等等),但如果网络上存在安全封锁,这可能是不可能的。例如,where I am security不允许服务器通过某些协议/端口在某些域中相互通信。所以,如果我尝试这样的事情,它会自动失败,因为防火墙的限制


一旦确定可以建立连接,请验证应用于网站应用程序池的用户帐户是否具有建立连接的权限。默认情况下,此帐户设置为“网络服务”,并且是本地帐户。这将拒绝该网站的此类许可。您需要将此帐户设置为域级服务帐户,并确保该帐户具有进行连接的权限。

这可能不是您想要的,但如果您有可以访问网络共享的特定用户ID和密码,则可以使用以下代码:

未在配置中设置Impersonate。IIS设置为使用windows身份验证。我检查了装载共享的服务器的安全日志,我发现ServerA已经连接OK了,在这种情况下我不确定。虽然对的回答建议通过代码映射共享?但我的理解是,如果您的应用程序池在网络服务下运行,您可以根据服务器名称设置共享权限,例如DOMAIN\SERVERA$。我确认它正在安全选项卡下的事件查看器中连接到serverb,引用@Richard Banks:是的,通过使用该方法,您将为该域内具有网络服务帐户上下文的任何计算机提供相同的访问权限。这是一个巨大的安全漏洞,我建议不要这样做。