iis – ASP / ASP.NET处理写权限的最佳方法是什么?

前端之家收集整理的这篇文章主要介绍了iis – ASP / ASP.NET处理写权限的最佳方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设您在IIS上有一个公共ASP.NET(或经典ASP)应用程序,其脚本/页面需要编写或更新位于Web发布文件夹树中的特定文件夹中的文件.

1)设置它的正确方法是什么?

我主要担心的是我想让ASP / ASP.NET应用程序写入文件夹,但我不希望常规的http用户能够将文件PUT写入其中.

解决方法

首先让我先说,我非常相信,除了将内容写入磁盘之外,几乎总有一个更好的解决方案.无论是将数据写入数据库还是提供Web服务,写入磁盘应该是最后一种选择.
这就是说有一些正当理由,但这有点棘手,取决于应用程序需要写出文件的原因.

将数据写在代码运行的地方之外是绝对必要的.允许最终用户写入ASPX / asp引擎可以解释/执行代码的路径是显而易见的原因.

影响这一点的其他一些事情是:

>您是在域帐户还是标准网络服务下运行工作进程.重要的是要意识到,当您授予IIS_WPG组对文件夹的写访问权限时,在服务器上的默认帐户下运行的任何ASP.NET应用程序都可以将文件写入该文件夹.在多个应用程序运行的服务器上,这是一种不太理想的配置,尤其是当应用程序不受信任和/或在ISP /共享托管环境中运行时.>生成文件是否需要Web可用.如果您的应用程序只是写出一些非Web可查看文件,只需创建目录,授予权限,并将应用程序配置为读/写到正确的位置即可.如果应用程序需要写出Web可查看文件(这在内容管理方案中很常见),则需要创建映射到可写目录的虚拟目录(没有执行代码/脚本权限).>您是否在负载平衡/ Web场环境中工作.如果您的应用程序在养殖环境中运行并且由于某种原因需要将文件写入磁盘,则会出现一个全新的问题.如何将webserver1上的用户生成文件与webserver2上生成文件同步?通过一些复杂的同步脚本来做这件事充其量是痛苦的,并且充满了种族/同步问题.实现此目的的最佳方法是在第三台服务器上创建共享(理想情况下是具有一定冗余的集群)并将数据存储在那里.如果您在域帐户(安全性最佳实践)下运行工作进程,您甚至可以映射到应用程序中的共享,而无需在代码或web.config中的任何位置使用用户/传递(使审计/安全人员满意). IIS还能够将虚拟目录映射到UNC路径,因此这不会影响您使此内容Web可见的能力.

猜你在找的asp.Net相关文章