zoukankan      html  css  js  c++  java
  • asp.net 如何配置authentication,完成基于表单的身份验证

    步骤一:
    在根目录下的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();
    }

    ==============================================================

    指定应用子配置设置的资源,并锁定配置设置,以防止它们被子配置文件重写。

    此元素是 .NET Framework 2.0 版中的新元素。

    configuration 元素(常规设置架构)
      location 元素(ASP.NET 设置架构)

     
     
    <location 
          allowOverride="True|False"
       path="path" 
    />
    

    下面几部分描述了此元素的属性、子元素和父元素。

    属性

    属性说明

    allowOverride

    可选的 Boolean 属性。

    指定配置设置是否可以被子目录中的 Web.config 文件的配置设置重写。

    默认值为 True.

    path

    可选的 String 属性。

    指定应用包含的配置设置的资源。使用缺少 path 属性的 location 将配置设置应用于当前目录及其所有子目录。如果使用不带 path 属性的 location,并且 allowOverrideFalse,则配置设置不能被子目录中的 Web.config 文件更改。

    子元素

    location 元素可以放置在其他元素的外侧,以便将配置设置应用于特定资源或者锁定配置设置。

    父元素

    元素说明

    configuration

    指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

    location 元素指定应用子配置设置的资源,还可用于锁定配置设置,以防止这些设置被子配置文件重写。

    location 元素可以放置在其他元素的外侧,以便将配置设置应用于特定资源或者锁定这些设置。有关更多信息,请参见配置特定文件和子目录锁定配置设置

    下面的代码示例演示如何允许匿名用户获得 Logon.aspx 页的访问权。

     
     
    <configuration>
       <location path="Logon.aspx">
          <system.web>
             <authorization>
                <allow users="?"/>
             </authorization>
          </system.web>
       </location>
    </configuration>
    

    下面的代码示例演示如何仅将指定页的上载文件大小限制设置为 128 KB。

     
     
    <configuration>
       <location path="UploadPage.aspx">
          <httpRuntime maxRequestLength="128"/>
       </location>
    </configuration>
    

    下面的代码示例演示如何防止配置设置被子目录中的 Web.config 文件更改。

     
     
    <configuration>
       <location allowOverride="false"/>
    </configuration>
    

    配置节处理程序

    不适用。

    配置成员

    ConfigurationLocation

    可配置的位置

    Machine.config

    根级别的 Web.config

    应用程序级别的 Web.config

    虚拟或物理目录级别的 Web.config

    要求

    Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0

    .NET Framework 2.0 版

    Microsoft Visual Studio 2003 或 Visual Studio 2005

  • 相关阅读:
    自定义ckeditor5
    ckEditor5 图片上传到七牛云
    Vue2.0原理-指令
    小程序体积优化(1)--优化大文本
    win10系统安装docker注意事项
    Vue2.0原理-模板解析
    使用nginx部署静态网站
    react-native初体验(2) — 认识路由
    react-native初体验(1) — hello world
    领骑衫总结
  • 原文地址:https://www.cnblogs.com/maijin/p/4665822.html
Copyright © 2011-2022 走看看