zoukankan      html  css  js  c++  java
  • 傻瓜教程:asp.net(c#) 如何配置authentication,完成基于表单的身份验证

    傻瓜老师又来了,本讲座报以学以致用,师傅带进门 修行靠个人的精神,不深入探讨,还请多指教~

    这堂课将的是基于表单的身份验证,其实某些时候,用于验证身份的账户和密码并不需要存在数据库或配置文件里,这时 web.config中的authentication节点就起大作用了。

    本堂课要完成的目的:

    验证用户身份成功,并登陆后台admin文件夹里的admin.aspx后台管理页面,否则禁止匿名用户访问项目中的admin文件夹里的任何一个文件

    步骤一:

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

    <system.web> 

    <authentication mode="Forms">
                <forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH">
                </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();

    }

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

    ok,今天的教程就到这里,傻瓜老师吃黄瓜去了,下堂课见。

  • 相关阅读:
    http://www.cnblogs.com/Javame/p/3632473.html
    在eclipse中新建Dynamic web project时选择2.5和3.0的区别(里面涉及servlet和tomcat的问题)
    图的理解:深度优先和广度优先遍历及其 Java 实现
    解决ORA-28000: the account is locked
    [MAT]使用MAT比較多个heap dump文件
    ansible学习之--简单学习笔记1
    awk基本使用方法简单介绍
    已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
    程序实践系列之库源码
    Android常见UI组件之ListView(二)——定制ListView
  • 原文地址:https://www.cnblogs.com/kingfly/p/1724867.html
Copyright © 2011-2022 走看看