Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能向我解释ASP.NET信任级别吗?_Asp.net_Security - Fatal编程技术网

有人能向我解释ASP.NET信任级别吗?

有人能向我解释ASP.NET信任级别吗?,asp.net,security,Asp.net,Security,我听说过很多关于信任级别的事情,有人试图向我解释,但仍然无法给出一个场景,在这个场景中,我会应用一个信任级别而不是另一个 我通读了一遍,但对我没什么帮助 是否有人能提供一个真实的例子,说明您何时需要使用各种级别(完整、高、中、低和最低),并解释如果我使用错误的级别,我将面临何种安全风险?虽然不是专家,我想举一个更常见的信任例子,如果你通过某个供应商以每月10美元的价格通过共享主机购买主机,你不能直接访问机器,但可以获得分配的存储空间。在这种情况下,您会获得中等信任,这通常是因为宿主希望限制您可以

我听说过很多关于信任级别的事情,有人试图向我解释,但仍然无法给出一个场景,在这个场景中,我会应用一个信任级别而不是另一个

我通读了一遍,但对我没什么帮助


是否有人能提供一个真实的例子,说明您何时需要使用各种级别(完整、高、中、低和最低),并解释如果我使用错误的级别,我将面临何种安全风险?

虽然不是专家,我想举一个更常见的信任例子,如果你通过某个供应商以每月10美元的价格通过共享主机购买主机,你不能直接访问机器,但可以获得分配的存储空间。在这种情况下,您会获得中等信任,这通常是因为宿主希望限制您可以执行的操作(确保您不能删除或修改不应该执行的操作),并且无法访问某些资源(例如尝试读取您有权限的文件夹外的文件)和其他任务

我们可以完全访问托管网站的机器,我们给予它完全的信任,这对我们来说并不重要,因为它专用于我们的网站,而不是共享资源。

可能比您刚才阅读的技术资料解释得更好

这里是最好的部分:

中等信任摘要

对媒体的主要限制 信任Web应用程序包括:

  • OleDbPermission不可用。这意味着您不能使用 ADO.NET管理的OLE DB数据 访问数据库的提供者。然而, 您可以使用托管SQL Server 访问SQL Server的提供程序 数据库

  • EventLogPermission不可用。这意味着你不能 访问Windows事件日志

  • ReflectionPermission不可用。这意味着您不能使用 反思

  • 注册表权限不可用。这意味着你不能 访问注册表

  • WebPermission受到限制。这意味着您的应用程序只能 与地址或范围通信 在中定义的地址的 元素

  • FileIOPermission受到限制。这意味着您只能访问文件 在应用程序的虚拟 目录层次结构。你的申请 被授予读、写、附加和 您的应用程序的路径发现权限 应用程序的虚拟目录 等级制度

  • 您也不能打电话 非托管代码或使用 企业服务


如果你是一家向人们提供主机服务的ISP,你可以很容易地想象你在哪里需要它。允许任何人编写可以访问文件系统的代码意味着任何人都可以在您的服务器上做任何他们想做的事情,而您的服务器可能承载多个客户端。

信任级别的问题是,太多插件需要提升权限,以至于某些类型的应用程序根本无法在其下工作

我个人见过Crystal Reports和HTML到PDF转换工具在中等信任下失败-需要对应用程序虚拟目录外的临时文件夹进行FileIOPermission。我还看到TCP套接字连接由于某些信任级别而被阻塞的问题

事实上,去年我在一个web应用程序中遇到了一个相当恼人的第22条军规的情况:安全性需要中等信任度,但写入事件日志也是如此

幸运的是,您可以在服务器上覆盖machine.config中的信任级别(如果您有访问权限),或者在服务器配置为允许覆盖machine.config文件的情况下覆盖web.config中的信任级别

但是这样做会破坏固定信任级别的目的