1.网站和项目的区别
WebSite改了后台代码只要保存不用重新编译,而WebApplication要重新编译
WebSite下没有namespace,website每一个都编译成dll,而webapplication编译成一个,有利于大型开发
2.没有webform用html+ashx来处理
要在html中设值,用占位符@value
3.ViewState知识,只有表单中设定了name的值提交给后台,服务器端控件的值都保存到ViewState中,前端生成了许多隐藏控件
4.最小权限原则,只允许用户做什么而不是
回环地址只有通过本机访问,如果要想外机访问,值需要绑定地址就行,还有就是绑定0.0.0.0(Any.IP),这样就可以通过任何一套网卡访问本机了
5.运行在服务器端MessageBox
6.在开发时使用cassinidev来当作web服务器,
7.在客户端校验是为了用户体验,客户端可以禁用javascript,所以服务器端还要校验
8.XSS 跨站脚本攻击
9.alert消息太难看,因此开发一个ashx页面来统一展示消息ShowMessage.ashx
context.Request.Write("<center><font color="red">"+Context.Request["Msg"]+"</font></center>");
context.Response.Write("<a href='javascript:history.back();'>返回上一页</a>");
系统内部弹出消息时只要用Redirect到ShowMessage.ashx?Msg=消息
10使用HtmlEncode可以编码,会直接将<script>输出到客户端,还有可以用literal控件,它的值也是,还有在客户端用
ValidateRequest="false"11.静态和非静态区别
静态类不能被实例化,如果静态类被实例化,静态类本身占内存,堆 静态存储区域 栈,静态类释放资源,把在内存中占的空间和产生垃圾自动释放
12.this就是指当前类的对象 在类当中显示的调用本构造函数
public Student(string name,int age,string chinese) : this(name,0,age,"",chinese)
{
}
在写构造函数的时候写一个全参的,另外一些不全参就可以直接调用全参的那个,这样可以
减少代码冗余