2012-07-31 32 views
2

我一直在研究一个ASP.net项目,而之前,我对“网站项目”和“Web应用程序项目”毫无头绪。我以为两者都是一样的,所以我选择了网站,现在我希望自己能够使用名称空间。在ASP.net中,“网站项目”的App_code文件夹中的公共函数和类是否有问题?

无论如何。现在,我需要在所有页面上使用一些全局函数和变量。所以我想要做到这一点的唯一方法是在App_code目录中创建一个类,并通过在需要的地方实例化一个对象来使用它的函数。这是唯一的出路,对吗?

我注意到,我只能保持公开的类和它的功能,甚至没有保护。我只是想知道使用公开课的安全漏洞是否存在。任何人都可以扔一些颜色?

谢谢你的时间。

+0

您可以在App_code文件夹中使用名称空间。你也可以在你的课堂中使用受保护和私人的方法。即使你不能做这些事情,你总是可以创建一个类库,将其编译并粘贴到Bin文件夹中。无论哪种情况,即使您创建了“Web应用程序项目”,您的类也需要实例化,除非它们的方法被定义为静态方法。 – dtc 2012-11-20 00:31:46

回答

1

在这个特定主题的MSDN documentation实际上是相当不错的:

安全与App_Code文件夹中的代码App_Code文件夹

安全问题在本质上是 相同的代码在Bin文件夹 - 代码在运行时编译为一个 程序集。缓解因素是,您可以阅读App_Code文件夹中文件的 源代码。但是,如果您不完全了解代码,它仍然可能代表安全风险。 因此,请处理App_Code文件夹中的源代码,因为您会将 编译后的代码视为同一来源。

阅读源代码的问题应该只有当你有人访问你的App_Code文件夹(他们通常不应该)时才有问题。

0

访问者(public,protected,private等)与安全无关。他们确定范围。

你做了什么 - 公用工具类的公共方法很常见。 .NET框架充满了它们。例如,查看System.IO.File类或System.Text.RegularExpressions.Regex类。没有安全漏洞。

相关问题