简单配置authentication,完成基于表单的身份验证

来源:互联网 发布:v380网络设置连接失败 编辑:程序博客网 时间:2024/05/22 10:24
验证用户身份成功,并登陆后台admin文件夹里的admin.aspx后台管理页面,否则禁止匿名用户访问项目中的admin文件夹里的任何一个文件

步骤一:
 在根目录下的web.config中加入:
  1. <system.web>  
  2. <authentication mode="Forms"> 
  3.             <forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH"> 
  4.             </forms> 
  5. </authentication>  
  6. </system.web>  

 loginUrl:用户没有登录,跳转到的登录页面
 defaultUrl:正确登录之后,在没有指向页的时候,弄人跳转的页面

步骤二:
在admin文件夹下新建一个web.config文件,并加入以下代码 

  1. <system.web> 
  2.         <!--拒绝匿名用户访问此目录下的任何文件--> 
  3.         <authorization> 
  4.             <deny users="?"/> 
  5.         </authorization>         
  6. </system.web>  

deny users="?":表示禁止匿名用户访问admin目录下的任何文件
 到目前为止,只要你访问admin下的任何文件,都会自动跳转到Login.aspx登陆页面了,要求你先登录,否则别想看到页面。

步骤三:
在根目录下,创建Login.aspx登陆页面(可不是在admin目录下哦),加两个textbox控件和一个botton控件,分别是用户名,密码,和登陆按钮
双击登陆按钮,在其登陆方法里写上:

  1. protected void btn_Login_Click(object sender, EventArgs e) 
  2.         if (TextBox1.Text == "admin" && TextBox2.Text == "fenghua17173"
  3.         { 
  4.             //“通知”表单验证,该用户名已经通过身份验证 
  5.             FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, true); 
  6.         } 
  7.         else 
  8.         { 
  9.             Response.Write("<script>alert('账号或密码有误,登录失败!');</script>"); 
  10.         } 
  11. }  

ok,这时你在login.aspx页面里填上账号密码,系统就会根据根你在根目录下web.config中配置的defaultUrl地址路径跳转过去,也就是admin/admin.aspx页面。
现在admin目录下的所有页面,均已通过身份验证,得到了可访问的票据。

最后一点:
有登陆,当然别忘了注销,这个更简单:
在admin目录下的任何一个页面中,加一个注销button按钮,并在其方法下写入: 

  1. //退出系统,注销用户 
  2. protected void btn_Logout_Click(object sender, EventArgs e) 
  3.         //删除用户票据 
  4.         FormsAuthentication.SignOut(); 
  5.  
  6.         //重新定向到登陆页面 
  7.         FormsAuthentication.RedirectToLoginPage(); 

好了,你已经知道如何配置authentication,完成基于表单的身份验证了。


原创粉丝点击