ASP.Net 中等信任设置

Posted

技术标签:

【中文标题】ASP.Net 中等信任设置【英文标题】:ASP.Net Medium Trust setup 【发布时间】:2010-09-13 02:01:04 【问题描述】:

我正在尝试将 IPermission 节点配置为中等信任的一部分。但是我无法在节点上找到 PathDiscovery 属性的有效值列表

<IPermission class="FileIOPermission" version="1" Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$"/>

我需要设置权限,以便帐户能够访问主路径下的所有子目录。当前 .svc(WCF 服务文件)会引发 404 错误,因为 ASP.Net 帐户无法从几个级别的子文件夹中获取它。我试图避免将节点更改为

<IPermission class="FileIOPermission" version="1" Unrestricted="true"/>

有什么想法吗?

TIA

【问题讨论】:

【参考方案1】:

我当然同意您不应该将节点更改为 Unrestricted,因为这几乎会破坏部分信任的目的。

根据System.Security.Permissions.FileIOPermission documentation on MSDN,FileIOPermission 应该也意味着对该路径下的所有内容的权限。 从那个文档:

访问文件夹意味着访问 它包含的所有文件,以及 访问所有文件和文件夹 它的子文件夹。例如,阅读 访问 C:\folder1\ 意味着读取 访问 C:\folder1\file1.txt, C:\文件夹1\文件夹2\, C:\folder1\folder2\file2.txt,依此类推 开。

当然,Microsoft 对构建自定义信任 .config 文件的记录非常糟糕,因此 FileIOPermission 的 .config 标记的行为可能与代码类不同...不过这让我感到惊讶。

是否有可能是其他问题导致了 404?仔细检查服务是否在您期望的凭据下执行,并且路径正在正确评估...

【讨论】:

404 是因为 FileIO 权限,因为如果 Unrestricted 设置为 true,服务调用不会失败。我想知道 $AddDir$ 是否有任何限制

以上是关于ASP.Net 中等信任设置的主要内容,如果未能解决你的问题,请参考以下文章

在中等信任的 ASP.Net 中读取程序集 Guid 而不锁定 appdomain 中的 DLL

中等信任下的进程内数据库选项

部署 ASP.NET MVC 项目

如何以中等信任从 ASP.NET 中的 bin 文件夹加载文件

使用受信任连接时,哪个帐户用于向 SQL 验证 ASP.net?

以中等信任度在 ASP.NET 中存储临时用户文件