我可以使文件夹在中等信任下可写吗?

Posted

技术标签:

【中文标题】我可以使文件夹在中等信任下可写吗?【英文标题】:Can I make a folder writeable in Medium trust? 【发布时间】:2010-09-18 04:17:40 【问题描述】:

我的网络应用程序写入多个文件夹(日志、上传等),我总是通过我的托管服务提供商手动设置这些权限。

我想创建一个在新安装时执行此操作的安装脚本。在中等信任下这可能吗?

我连File.GetAccessControl都不能调用,更不用说File.SetAccessControl了,不过反正我也不需要这么“大锤子”。我只想做 ISP(在本例中为 GoDaddy)让我通过管理控制台做的事情。

我相信 php 能够做到这一点,如果可能的话,我愿意为此目的考虑一个 PHP 页面。

【问题讨论】:

您是否检查过运行脚本的用户是否有权设置 Windows 访问控制? 【参考方案1】:

好的,假设您以通常的方式使用 IIS 和 asp.net,您必须有一个 asp.net 帐户,框架在该帐户下代表您执行您的应用程序。

Web 应用程序在单个帐户下运行,并通过身份验证以编程方式授予用户访问权限,以执行您的“主帐户”代表他们执行的操作。

把它想象成这样......

Asp.net 加载您的应用程序(asp 帐户) 用户连接(用户帐户) 用户登录(?取决于使用的帐户可能是 windows auth 或 forms auth 等)

用户请求在他们的帐户下使用您呈现的网页做某事...

asp.net 检查用户是否有执行操作的权限(asp.net acount) 如果用户可以执行此操作,asp.net 会根据请求的操作(asp.net 帐户)进行操作

因此... 您应该已经拥有该 asp.net 帐户中的相关权限来执行您需要执行的操作。

还有一个层次……IIS服务器本身在系统/网络服务账号下正常运行。

所以问题是真的...... 您希望如何向可能的用户授予写入服务器的权限。

查看框架中的成员资格提供程序和角色提供程序类,您应该能够继承它们并创建一个 ActiveDirectoryRoleProvider 和 ActiveDirectoryMembershipProvider 类,它们将根据 AD 中用户的角色成员身份进行身份验证,或者如果您更喜欢仅针对带有基本 asp.net 提供程序类的数据库。

希望这会有所帮助。

【讨论】:

哦,我想补充一下,如果您需要覆盖代码的信任级别,您可以根据有权这样做的用户来执行此操作。因此,如果您发现“中等信任”还不够,并且经过身份验证的用户是系统管理员,那么我相信您可以根据要求权限的用户进行覆盖。不过,我认为您不需要这样做。 感谢您的意见。这确实对典型设置中使用的各种帐户有所了解。如果应用程序通过 IUSR 帐户连接,那么它将如何利用只有 ASP.NET 帐户可用的权限?【参考方案2】:

你需要编辑一个配置文件 %windir%\Microsoft.NET\Framework版本\

见http://msdn.microsoft.com/en-us/library/ms998341.aspx

【讨论】:

以上是关于我可以使文件夹在中等信任下可写吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何自动化测试中等信任代码

可以在中等信任环境中运行 C++ dll 吗?

亚音速 3.0 中等信任问题

有没有办法在 VS2010 中模拟中等信任度

在中等信任下通过 GMail SMTP 发送电子邮件

什么是 Asp.net 中的中等信任?