题目

进程和线程
进程是资源分配的最小单位,线程是CPU调度的最小单位
线程在进程下行进
一个进程可以包含多个线程

CLR(Common Language Runtime)
公共语言运行库(CLR)是一套完整的、高级的虚拟机,它被设计为用来支持不同的编程语言,并支持它们之间的互操作。是一个CLI 的一个实现,包含了.NET 运行引擎和符合 CLI 的类库。

.Net与COM的关系是什么

ASP头部写什么使web server强制检查任何程序中使用到的变量必须
先定义

Option explicit

ASP头部写什么可以不会因为某个错误影响到整个ASP页面的执行
On error resume next

ASP页面不进入缓存,即每次执行都自动刷新
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = “no-cache”

一般情况下,当用户请求WEB服务器时,服务器把请求回复给客户端。在客户端,浏览器把缓存作为一种加快速度的策略,就是当请求时先检查缓存的情况,如果有就直接调缓存了,而不请求服务器了。
在WEB程序设计中,有时为了防止重复的提交或者严格的次序等,必须让用户的数据立即在使用后就过期,当用户后退时就显示过期而不能继续使用。也算是为安全考虑的吧。
一般,response.expires写在页面的最上端,回后面跟的是一个时间,就是过期的时答间,0或者负数表示立即过期。

private、 protected、 public、internal 修饰符
private : 私有成员, 在类的内部可以访问
protected: 保护成员,该类内部和继承类中可以访问
public: 公共成员,没有访问限制
internal:在同一命名空间内可以访问

重写(override)和重载(overload)的区别
重写覆盖了一个方法,以实现不同的功能。重写的参数列表必须完全与被重写的方法相同,一般的用于子类在继承父类时。
重载一般是用于在一个类实现若干重载的方法,方法的名称相同,参数不同。并不属于“面向对象编程”。

.net中读写数据库需要用到那些类?他们的作用?
DataSet:数据存储器。
DataCommand:执行语句命令。
DataAdapter:数据的集合,用语填充。

ASP.NET页面之间传递值的方式
QueryString,Session,Cookies,Application,Server.Transfer

QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,不能用这个方法。

Session方法将每份数据存储于服务器变量中,可以传递比较多的数据,并且安全性较高,所以常用于用户身份的验证功能中。Session变量如果存储过多的数据会消耗过多的服务器资源。

Cookie用于在用户浏览器上存储小块的信息,保存用户的相关信息,比如用户访问某网站时用户的ID,用户的偏好等,用户下次访问就可以通过检索获得以前的信息。所以Cookie也可以在页面间传递值。Cookie通过HTTP头在浏览器和服务器之间来回传递的。Cookie只能包含字符串的值,如果想在Cookie存储整数值,那么需要先转换为字符串的形式。
与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

Application对象的作用范围是整个全局,也就是说对所有用户都有效。它在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中对它进行存取。它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。

Server.Transfer是面象对象开发所使用的方法。
Server.Transfer是从当前的ASPX页面转到新的ASPX页面,服务器端执行新页并输出,在新页面中通过Context.Handler来获得前一个页面传递的各种数据类型的值、表单数据、QueryString。由于重定向完全在服务器端完成,所以客户端浏览器中的URL地址是不会改变的。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。

WEB常见的安全漏洞
SQL注入漏洞

用于非法获取网站控制权,数据库层上的安全漏洞。程序忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行。

所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。
对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。
确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。

跨站脚本漏洞
目录遍历漏洞

声明一个类不能被继承
sealed关键字

定时器类型
System.Windows.Forms.Timer
System.Threading.Timer
System.Timers.Timer

事件
事件是一个用户操作。应用程序需要在事件发生时响应事件,通过提供事件处理程序为相应的事件添加可执行代码。事件是一种特殊的委托。

ASP.NET 以什么形式运行
ASP.NET 是作为一个ISAPI 过滤器程序来运行的,同时它是一个.NET CLR的宿主,从而实现了运行托管的服务器代码的功能。

GET请求和 POST 请求
GET 请求把表单的数据显示在 URI 中,并且对长度和数据值编码有所限制。
POST 请求把表单数据放在 HTTP请求体中,并且没有长度的限制。

ASP.NET的页面生存周期
初始化
加载数据和页面
触发事件
保存状态并呈现页面

实现页面跳转的方法
Response.Redirect
Server.Transfer
Server.Execute
javascript脚本
超链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值