码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-07-21 23:41:07      阅读:227      评论: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,并且 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

 

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

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!