【问题标题】:ASP.NET intranet web site writing text files to a network folderASP.NET Intranet 网站将文本文件写入网络文件夹
【发布时间】:2012-04-28 03:45:23
【问题描述】:

我有一个需要编写文本文件的 Intranet 应用程序。该文本文件需要存在于网络共享文件夹中。我通过 UNC 名称“\\fileserver\subfolder\TEST.txt”访问它,当然会遇到可怕的“访问路径被拒绝”错误。

我的 Intranet 网站在 IIS 6 上运行。我在 Intranet 上有另一个应用程序需要能够使用 Request.ServerVariables["AUTH_USER"] 访问已登录用户的帐户。我发现如果我启用对该站点的匿名访问,这将不起作用。我正在使用集成的 Windows 身份验证。如何为 Web 应用程序启用对我的网络共享文件夹的写访问权限?我想我不能在不破坏我的其他应用程序的情况下使用模拟。我可以对我网站的这一部分(文件夹)做一些不会影响我的其他应用的事情吗?

我需要一步一步地在 IIS 和/或我尝试写入的网络文件夹的文件夹设置上执行操作以使其正常工作。

【问题讨论】:

  • 在 iis 中,创建一个指向网络共享的虚拟文件夹并使用不同的凭据进行登录。然后让您的应用程序读取/写入该文件夹,它会认为它是本地的。跨度>

标签: c# .net file-io permissions


【解决方案1】:

有点小技巧是模拟写入文件的代码部分。 IE。您切换到有足够权限写入文件的用户。

您可以使用一个小的Impersonator helper class 来执行此操作,例如:

... 
using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
   ...

   <code that executes under the new context>

   ...
}

...

这种方法的缺点是你必须在某个地方存储用户名和密码,要么硬编码在你的代码中,要么在例如内部。你的 web.config 文件。从安全的角度来看,这两件事都可能很糟糕。

【讨论】:

  • 谢谢 Uwe Keim。这让我开始走上正确的道路。我尝试在我的文件写入周围使用这样的代码:
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
相关资源
最近更新 更多