use*_*456 7 .net c# security visual-studio-2010 visual-studio
我正在开发Visual Studio 2010应用程序,我的应用程序不断连接到互联网.我应该This is a full trust application
在安全选项卡中激活吗?
如果是,它究竟意味着什么?我正在阅读msdn docs,但我无法理解.我需要一些简短的时间来使用这个功能.
不用担心,它不会影响您的Internet连接的安全性,但它会影响.NET框架处理您的应用程序的方式.所以 - 是的,您可以在没有危险的情况下激活它,但是如果可能的话,您应该在代码中声明应用程序需要哪种访问级别来优化安全性.解释细节:
完全信任意味着您的应用程序需要.NET框架提供的所有权限.作为开发人员,您可以声明应用程序需要哪个信任级别才能运行,这称为"代码访问安全性". 代码访问安全性意味着您通过属性告诉编译器您的代码需要哪种操作才能成功.
在.NET框架反过来估计应用程序应该多少信任被授予:例如,如果您将应用程序部署到远程计算机,通过它您的Intranet*之外的网络共享访问),然后.NET框架赋予了它不到"完全信任".这被称为"基于证据"的安全模型,它通过所谓的托管代码实现.
托管代码意味着您的.NET应用程序被"Roslyn" -编译器编译成MSIL(M icro s oft的I ntermediate L anguage),然后"及时"编译(即,只是当您执行它时,除非您选择创建本机通过"RyuJIT" - 编译器将代码在执行之前通过NGEN显式地转换为特定于CPU的机器语言.这允许建立一个额外的抽象层,这反过来使.NET Framework能够控制你的代码所做的事情并允许它或者 - 如果不是 - 抛出安全异常.
您使用C#或VB.NET语言为.NET框架编写的所有代码均为默认托管代码.但是,有(非常罕见)您希望嵌入非托管代码的情况 - 也称为"不安全代码"(在.NET术语中).一种方法是在你的代码中创建一个"不安全"部分(我在这里只提到完整性 - 即如果你可能在源代码中遇到它).
正如我之前提到的,您可以通过属性指定代码的功能,但您也可以更改适用于本地计算机的规则,以通过.NET安全设置更改此行为. 通常,最好尽可能准确地指定应用程序所需的权限,并尽可能地限制它们.
如果您有兴趣,可以在此处找到更多信息: 探索.NET Framework安全模型
*)谢谢你的提示,Damien!实际上,该框架的早期版本为网络上的资源(网络共享)提供了较少的信任,因为.NET 4桌面和本地Intranet连接具有完全信任.