尝试在ASP.NET应用程序中读取/写入文件时的权限问题

时间:2014-08-19 08:03:58

标签: c# asp.net permissions impersonation

我们有一个.net网络应用程序。 Web应用程序在IIS中设置,并在AppPool下运行,该AppPool在Domain \ User1

下运行

此Web应用程序具有C#.NET代码,可以访问服务器上的文件。 问题是只有Domain \ User2才有权使用此文件进行读取/编辑。

我们知道.NET代码将在AppPool帐户的凭据下运行(即:Domain \ User1)。因此,如果我们尝试在Web应用程序的.NET代码中读/写文件,那么它将抛出错误。

我可以使用哪些可能的方法来访问此文件? 我不允许根据公司政策更改AppPool用户。如果这是可能的,那么代码可以访问/写入文件。此外,由于公司政策,我无法更改文件的权限并允许Domain \ User2再次访问该文件。

我还有其他选择吗?

我是否可以通过.NET代码仅将文件读/写部分代码作为Domain \ User2运行?

3 个答案:

答案 0 :(得分:4)

模拟不适用于您的情况,因为您“允许访问作为第一个用户运行的asp.net,并且您表明这是公司政策禁止的。解决方案有两个:

  • 向您的经理解释需要并获得批准
  • 将acl添加到文件中,以便应用程序池用户可以写入文件

另一种方法是设置一个用户无权访问的服务帐户,并使用该帐户访问相关文件。

答案 1 :(得分:3)

您是否考虑过为文件上传/下载编写服务?它可以在只有Domain \ User2有权访问文件的服务器上运行。

答案 2 :(得分:1)

最好能够使用Windows身份验证'在IIS中,这将帮助您在Web应用程序中访问WindowAccount。您还可以限制用户对UserGroup,用户类型等的尊重