asp.net Forms表单验证 使用经验及验证流程分析
最近,要做一个登陆的页面,就想到了安全性方面的问题。记得曾经在邵志东老师讲的关于asp.net安全性方面的课程中,提到asp.net提供了4个身份验证程序:1.表单身份验证;2.Windows身份验证;3.Passport身份验证;4.默认身份验证。尤其讲了表单身份验证,想想,正好自己以前也不曾使用过这个验证方式,那就拿来练练手吧。
表单验证,可以根据用户和角色来限制用户访问。比如,我们有以一个后台管理系统,只有通过后台登陆页面合法登陆的用户才能访问后台管理系统中的任何页面,这个时候我们就可以通过表单验证来实现(过去我都是在每一个页面写判断逻辑。现在想起来,过去的那种方法真是不折不扣的体力劳动,而且如果哪个页面忘记写了,就麻烦了)。
实验开始(因为只记录经验,所以有些知识点这里并没有提到,需要大家多花点课外时间了。文末提供了些链接供大家参考)
我接下来就来做一个Forms表单验证的例子。在该例子中,我建立了两个文件夹分别为User和Admin,在每一个文件夹中又有login.aspx、index.aspx和web.config。我希望普通用户访问User文件夹需要首先要在用户登陆界面进行登陆,成功后才能访问用户的index.aspx。而管理员则首先要在Admin的登陆界面进行登陆,才能访问Admin中的index.aspx。而在网站根目录有LoginRedirect.aspx、web.config和Global.asax。
目录结构图:
如何才能实现表单验证呢?
1.配置根目录下的web.config (在网站根目录下web.config文件中的system.web标记中,修改原<authentication mode="Windows" />为如下代码)
Code
<authentication mode="Forms">
<forms name="adminlogin" loginUrl="loginRedirect.aspx">
</forms>
</authentication>
<authorization>
相关文档:
在ASP.NET页面中经常需要链入一些JS文件,如:
如果在JS里有中文的话,在一般情况下,在浏览器里会报错脚本错误.
如果不信可以自己试一试。
其实是这样的:
由VS.NET自动生成的项目里,Web.Config中有这么一段:
<
globalization
requestEncoding
="utf-8"
responseEncoding
=" ......
1. 页请求:
页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。
2. 开始:
在开始阶 ......
asp.net 滚屏(但必须将该页面代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
给删除,否则将不滚动)
<script language="JavaScript">
var currentpos,timer;
function initialize()
{
timer=setInterval("scrollwi ......
通常我们在一个
ASP.NET MVC项目中创建一个
Controller的时候,
Index()方法默认的返回类型都是
ActionResult,通过查看
UML图,
ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类。
Ø
ActionResult
及其子类的
UML
图
有关
ActionResult及其子类的
UML图如下所示:
&n ......