首页 > Web开发 > 详细

asp.net 如何配置authentication,完成基于表单的身份验证

时间:2015-07-21 23:39:57      阅读:383      评论:0      收藏:0      [点我收藏+]

步骤一:
在根目录下的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,并且 allowOverride 为 False,则配置设置不能被子目录中的 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

 

asp.net 如何配置authentication,完成基于表单的身份验证

原文:http://www.cnblogs.com/maijin/p/4665822.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!