gate_s

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

来源:http://hackbadboy.com/forum.php?mod=viewthread&tid=717&extra=page=1

 

步骤一:
在根目录下的web.config中加入:

<system.web>
<authentication mode="Forms">
            <forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH" timeout="20">
            </forms>
</authentication>

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


步骤二:

在admin文件夹下新建一个web.config文件,并加入以下代码
<system.web>
        <!--拒绝匿名用户访问此目录下的任何文件-->
        <authorization>
            <deny users="?"/>
        </authorization>        
</system.web>

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

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

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

ok,这时你在login.aspx页面里填上账号密码,系统就会根据根你在根目录下web.config中配置的defaultUrl地址路径跳转过去,也就是admin/admin.aspx页面。

现在admin目录下的所有页面,均已通过身份验证,得到了可访问的票据。


最后一点:

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

//退出系统,注销用户
protected void btn_Logout_Click(object sender, EventArgs e)
{
        //删除用户票据
        FormsAuthentication.SignOut();

        //重新定向到登陆页面
        FormsAuthentication.RedirectToLoginPage();
}

posted on 2013-05-31 13:22  gate_s  阅读(440)  评论(0编辑  收藏  举报