【问题标题】:ASP.NET - Reading and writing to the file-system, outside the applicationASP.NET - 在应用程序外部读取和写入文件系统
【发布时间】:2010-12-01 13:42:14
【问题描述】:

有没有一种方法可以访问当前 ASP.NET 应用程序之外的文件系统,而无需四处授予IIS_IUSRS 权限?例如,如果我想让这条线工作:

logStream = File.Open("C:\logs\app.log", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);

...我通常必须将C:\logs\app.log 的读/写权限授予IIS_IUSRS 组。这对于在新系统上设置应用程序很烦人,需要访问的目录可能位于不同的位置。有没有办法告诉 ASP.NET 它应该可以访问哪些目录?

【问题讨论】:

    标签: c# asp.net iis permissions


    【解决方案1】:

    您可以使用模拟来执行此操作,但我建议您不要这样做。就安全性而言,您正在进入非常危险的领域。如果您不能 100% 确定您所冒充的身份的访问权限,那么您就冒着让黑客进入您不打算进入的服务器区域的真正风险。正确设置 ACL 非常耗时,而且您不想只使用管理用户或超级用户。您希望为此目的专门设置一个用户,如果您这样做,您只是在您已经在做的事情上添加了一个步骤。

    更好的解决方案是将您的应用程序设计为写入您的应用程序控制的文件夹。您的安装可以在机器上创建文件夹并自动授予权限,而不是依赖现有的系统文件夹。

    http://msdn.microsoft.com/en-us/library/ms998258.aspx#pagguidelines0001_impersonationdelegation

    【讨论】:

      【解决方案2】:

      您还可以将 AppPool 设置为在具有适当凭据的帐户下运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多