完全信任和以管理员身份运行是一样的吗?

15

完全信任是否等同于以管理员身份运行?我读过有关内容指出,“为了使此功能工作,应用程序必须是一个完全信任的应用程序。”那是不是说你必须具备管理员权限才能运行该应用程序?如果不是,有什么区别?如何确定应用程序是否是“完全信任”的?

我被告知“无论是否具有管理员权限,.Net 应用程序如果不是从‘受信任’位置运行,将无法完成某些操作。”什么是“受信任的位置”?如果你从“受信任的位置”运行应用程序,那么你可以在没有管理员权限的情况下执行“需要完全信任”的操作吗?

3个回答

17

不。Full-trust是.NET术语,用于表示它不在减少权限的.NET沙盒中运行。在3.5 SP1之前的.NET版本中,这包括从网络共享运行(在默认配置中)。它还包括作为未请求其他权限的ClickOnce应用程序运行,或在某些基于浏览器的沙盒中运行。

Full-trust意味着它可以做任何正在运行的用户所能做的事情,并不意味着它正在以管理员身份运行。


5
截至2.0版本,.Net框架具有自己的小型文件系统设置以确保安全性。无论是否为管理员,如果不是从“受信任”的位置运行,.Net应用程序将无法执行某些操作。
本地硬盘上的几乎所有内容都是可信任的,但即使是本地内部网络也不被信任(据说他们在3.5sp1中修复了这个问题),因此大多数.Net桌面应用程序将无法启动,如果它们位于网络驱动器或共享文件夹上。
您可以更改计算机上的配置,以便允许来自该区域的应用程序,但必须对每台运行应用程序的计算机进行此操作,这会破坏常见的企业部署方案。
从ASP.Net的角度来看,这也意味着某些活动需要比其他活动更多的“信任”。例如,如果未正确设置,则发送电子邮件可能会导致异常。

0

基本上,完全信任(Full Trust)意味着C#代码对当前(.Net)进程以及在应用程序池帐户下运行的所有进程具有完全控制权。

这与运行C++ dll相同。

管理员访问权限取决于IIS设置(即如果您在System或管理员帐户下运行网站)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接