文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>表单验证浅谈

表单验证浅谈

时间:2010-12-07  来源:南极的风

  我们往往只需要这样的需求。对于网站目录,只有一部分限制匿名用户访问,需要通过了用户验证才可以;并且用户验证信息存储在用户自定义的数据库中;登录成功后跳转自定义页面;匿名用户访问受限文件,会自动跳转到登录界面;退出后需要重新登录。

  这样的需求有一个很简单也很清晰地实现方式,这种方式适合大部分的项目。

  首先在web.config中限制匿名用户的访问目录,在根节点<configuration>下,放入下面的代码:  

<location path="">  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</location>

  <location path="">填入你想限制匿名用户访问目录的路径,<deny users="?"/>表示拒绝所有匿名用户访问此目录。

  然后更改身份验证提供程序,和配置验证页面和验证通过后的跳转页面:  

<authentication mode="Forms">
  <forms name="" loginUrl="" defaultUrl=""/>
</authentication>

  身份验证提供程序必须为"Forms";name是网站标识,如果在一个服务器下有多个网站,比如网站是处于虚拟主机上的话,那么这个name需要自定义一个名称;loginUrl是登录验证页面的路径,这个页面可以处于受限目录下,也可以处于其他目录中,在受限目录下匿名用户也可以访问这个页面;defaultUrl是登录成功后的自动跳转页面路径,这个不需要在程序中作任何设置,这个页面的跳转是自动的,只要登录成功。

  web.config中的配置就这样就结束了,下面我们需要在登录验证页面中做一点小小的工作,告诉程序是否验证成功。

  当用户输入用户名和密码之后,我们需要把用户的输入提交到我们自定义储存用户验证信息的地方,比如SQL Server中进行核对,如果验证成功,那么在验证成功的这个判断中加入下面的代码:  

FormsAuthentication.RedirectFromLoginPage( , false);

  注意,需要引用System.Web.Security命名空间。这个方法是把用户信息储存到Cookie中,这样在验证的有效期内访问受限页面就不用再次验证。这个方法有两个参数第一个是经过身份验证的用户名,第二个参数是个布尔值,false表示创建非持久化会话的Cookie。然后系统会自动跳转到我们在web.config中设置的defaultUrl页面。

  最后我们需要添加退出功能。这个功能需要在需要退出的事件中加入下面的代码:  

FormsAuthentication.SignOut();

Response.BufferOutput
= true;
Response.Redirect(
"", false);

  第一句代码同样需要引入System.Web.Security命名空间。第一句代码的意思就是退出登录;第二句表示缓冲输出,也就是在整个网页处理完毕后再输出;第三句就是重定向登出后页面。

  Redirect方法有两个参数,第一个就是重定向页面路径,第二个是个布尔值,随便哪个值都可以,设置为true是立即终止当前页面进程,这样系统会抛出一个异常来终止进程,设置为false就是不终止当前页面。效果上都一样,这个异常是不能避免的,如果不想有异常抛出,设置为false就可以了。 

  就这样,一个基本的登录验证系统已经实现了。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载