ASP.NET 2.0 角色控制与管理
1.
认证与授权机制
l
ASP.NET 2.0安全必要性
对于网站而言,用户身份认证与权限管理是非常重要的部分。通过用户名和密码,对用户进行身份验证,并指派他可访问的资源,这部分工作一直都是网站开发的重要内容。
在另外一些情况下,需要根据用户的身份进行权限识别,不同用户访问相同页面,也需要显示不同内容。这设计到用户权限管理部分,也是网站开发的核心内容。
l
ASP.NET 2.0角色控制概述
ü
ASP.NET 2.0的
membership和
role manager能够非常好的解决这个问题,不但可以对用户的登陆信息进行统一管理,还可以就用户的权限进行分类管理,让开发者方便的就网站权限与安全性进行设定。这种设定以前都需要我们自己写一个库,但是现在就可以快速的进行设定。
ü
ASP.NET 2.0的
Login控件更提供了一种非常方便的建造登陆与用户管理信息的方法。
l
认证与授权
ASP.NET 通过与
IIS协同工作来进行授权管理。共用两种身份认证方式。
ü
通过查询
acls列表或者许可证来判断该访问是否拥有浏览的权利。(
acls指可以访问的列表,这个列表记录了访问者是谁,他是否可以访问我们的资源。)
ü
通过
URL认证
l
认证方式
当用户以访问某网站的时候。两种授权方式会分别进行不同的动作。第一种认证方式会根据用户的登陆信息来判定
asp.net针对该用户所指定的系统账号,然后再判断该系统账号是否对被请求的本地资源有访问权限。(第一种方式主要是通过
IIS的配置来实现的,这里不是本文的重点)。第二种身份认证通过检查
ASP.NET 配置文件来进行授权认证。
ASP.NET 的页面认证方式中,可以使用以下三种方式进行身份认证。
取值
描述
None
不进行授权与身份验证
Windows
基于
windows身份验证,首先判断
windows用户的身份和组
Form
基于
cookie的身份认证机制
PassPort
使用
PostPort SDK进行二次开发
注:在广域网中不可能使用这种
Windows身份验证
相关文档:
以前做.NET winform的时候,一直都是用 Console.Write向控制台输出信息的,这次做web的时候,发现这个语句用不了。
查了一下资料,才发现web程序执行时,是被附加到IIS进程的一个单独的AppDomain中的,所以就算有输出也看到,所以Console.Write调试信息无法显示出来。
那么解决办法是,用debug代替:
System.Diagn ......
在网上找了好多,实现方式大多是使用定时器
个人觉得定时器会造成一定程度上的假象
(如:定时器还没结束页面已经加载完毕,或定时器结束后页面还没加载完成)
本方法利用的是javascript,先网页面里面写入一个层,显示加载框,然后等页面结束后
在body的onload中写入事件,隐藏该对话框
方法(我的系统是多个页面,所 ......
69.下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (object.referenceequals(i,j))
console.writeline("equal");
else
console.writeline("not equal");
答:不相等,因为比较的是对象
70.什么叫做sql注入,如何防止?请举例说明。
答:利用sql关键字对网站进行攻击。过滤关键字'等
71.什么是反射?
答: ......
一、页输出缓存
1.设置 ASP.NET 页缓存的两种方式
1.1 以声明方式设置 ASP.NET 页的缓存
以声明方式设置 ASP.NET 页的缓存的方法是在页中使用 @ OutputCache 指令,它的常用属性如下:
程序代码
<%@ OutputCache Duration="" VaryByParam="" VaryByControl="" VaryByHeader="" VaryByCustom="" CacheProfi ......
Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.
//ASP.NET中防止页面多次提交的代码:javascript< script language="javascript"> < !-- function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTag ......