ASP.NET Intranet网站将文本文件写入网络文件夹

时间:2012-04-16 19:34:19

标签: c# .net file-io permissions

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

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

我需要一步一步地在IIS中做什么和/或我正在尝试写入的网络文件夹的文件夹设置以使其工作。

1 个答案:

答案 0 :(得分:0)

有点像黑客会模仿写入文件的代码部分。即切换到具有足够权限写入文件的用户。

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

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

   <code that executes under the new context>

   ...
}

...

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