我应该选择:这是一个完全信任的应用程序

问题描述 投票:0回答:1

我正在 Visual studio 2010 中开发应用程序,我的应用程序始终连接到互联网。我应该在“安全”选项卡中激活

This is a full trust application
吗?

如果是的话,它到底意味着什么?我正在阅读 msdn 文档,但我无法理解它。我需要一些简短的内容来说明何时使用此功能。

c# .net visual-studio visual-studio-2010 security
1个回答
9
投票

不用担心,它不会影响您的互联网连接的安全性,但它会影响.NET框架处理您的应用程序的方式。所以 - 是的,您可以毫无危险地激活它,但如果可能的话,您应该在代码中声明您的应用程序需要哪种访问级别来提高安全性。详细说明:

完全信任意味着您的应用程序需要.NET框架提供的所有权限。作为开发人员,您声明您的应用程序需要哪个信任级别才能运行,这称为 “代码访问安全性”。 代码访问安全意味着您通过属性告诉编译器您的代码需要哪种操作才能成功。

.NET 框架依次估计应授予应用程序多少信任: 例如,如果您将应用程序部署到远程计算机(可通过 Intranet 外部的网络共享访问该计算机*),则 .NET Framework 不会给予它“完全信任”。这被称为“基于证据”的安全模型,通过所谓的托管代码实现。

托管代码意味着您的.NET应用程序被“Roslyn”-Compiler编译成MSILMicrosoft的InintermediateL语言),然后“只是及时”(即当您执行它时,除非您选择通过“RyuJIT”编译器执行之前通过NGEN显式创建本机代码)转换为CPU特定的机器语言。这允许建立一个额外的抽象层,从而使 .NET Framework 能够控制您的代码执行的操作并允许它,或者如果不允许,则抛出安全异常。

您使用 C# 或 VB.NET 语言之一为 .NET 框架编写的所有代码都是默认托管代码。但是,在某些(非常罕见)情况下,您需要嵌入非托管代码 - 也称为“不安全代码”(在 .NET 术语中)。一种方法是在代码中创建一个“不安全”部分(我在这里只是为了完整性而提及 - 即以防万一您可能在源代码中遇到它)。

正如我之前提到的,您可以通过属性指定代码的功能,但您也可以更改应用于本地计算机的规则,以通过 .NET 安全设置更改此行为。 通常,最好尽可能准确地指定您的应用程序需要哪些权限,并尽可能限制。

如果您有兴趣,可以在这里找到更多信息: 探索 .NET Framework 安全模型

*)谢谢您的提示,达米安!事实上,该框架的早期版本对网络上的资源(网络共享)的信任度较低,而 .NET 4 桌面和本地 Intranet 连接则具有完全的信任度。

© www.soinside.com 2019 - 2024. All rights reserved.