动态网站通常由多个页面组成, 用户在浏览页面的时候, 为了 保证网站内信息资源的安全, 应禁止访问者不通过登录页面而强行进入其他页面进行访问; 下面者介绍这种方式并不是实际生产中用的最多的做法, 通常的做法是将用户的登录名和密码保存在一个session中. 但是使用FormsAuthentication进行验证的原理和session基本类似, 只是能更简单的实现身份验证.
1.前端aspx页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head > <title>登录验证</title> </head> <body style="margin:auto"> <form id="form1" runat="server"> <div> <table style="border: 1px solid red ; 600px"> <tr> <td valign="top">用户名: <asp:TextBox ID="txtUserName" runat="server" Width="185px"></asp:TextBox> <br /> <asp:Label ID="Label1" runat="server" Text="请输入用户名"></asp:Label> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="请输入用户名" ControlToValidate="txtUserName"></asp:RequiredFieldValidator> </td> </tr> <tr> <td valign="top">密 码: <asp:TextBox ID="txtPassword" runat="server" Width="185px" TextMode="Password"></asp:TextBox> <br /> <asp:Label ID="Label2" runat="server" Text="请输入用户密码"></asp:Label> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="请输入用户密码" ControlToValidate="txtPassword"></asp:RequiredFieldValidator> </td> </tr> <tr> <td> <asp:Button Text="登录" ID="ibtnLogin" runat="server" Width="127px" Height="38px" onclick="ibtnLogin_Click" /> <br /> <asp:Label ID="lblMessage" runat="server" ForeColor="#FF3300"></asp:Label> </td> </tr> <tr> <td ><a href="Register.aspx">去注册</a></td> </tr> </table> </div> </form> </body> </html>
2.后端.cs中部分代码
protected void ibtnLogin_Click(object sender, EventArgs e) { if (FormsAuthentication.Authenticate(txtUserName.Text, txtPassword.Text)) { FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, true); } else { Response.Write("<script>alert('登录失败!');</script>"); } }
3.最后是web.confg中的部分代码
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的 安全身份验证模式。
这种鉴别模式属于Forms鉴别
-->
<authenticationmode="Forms">
<formsname="myCookie"loginUrl="login.aspx">
<credentialspasswordFormat="Clear">
<username="123"password="123"/>
</credentials>
</forms>
</authentication>
<authorization>
<denyusers="?"/>
</authorization>