============================================================================== 1)创建一个类来处理用户登录,将该类编译成一个装配件(assembly),并发布到站点的bin目录下。 ==============================================================================
编辑C#源程序文件class.cs:
using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web.Security;
namespace Component { public class CheckLogin { public CheckLogin() : base() { }
//输入工号和密码,返回用户名 public string isMember(string userName, string password) { // 定义SQL语句 string sql = "select ltrim(rtrim(nvcLName))+ltrim(rtrim(nvcFName)) as EmployeeName from [user] where workerNo = '" + userName + "' and [password] = '" + password + "'";
// 定义SQL连接 SqlConnection cn = new SqlConnection("server=server_sql;uid=sa;pwd=;database=lhzz");
// 定义SQL命令并打开连接 SqlCommand cmd = new SqlCommand(sql, cn); cn.Open();
// 定义SQL数据读取器、执行数据读取、返回特定标题列的内容 SqlDataReader sdr; sdr = cmd.ExecuteReader(); string name=""; if (sdr.Read()) { name=sdr["EmployeeName"].ToString(); } return name; } } }
用csc命令将class.cs编译为Component.dll,然后把该文件复制到站点根目录的bin子目录下。这样,一个装配件的发布就完成了。
================================================================================== 2)建立登录页(login.aspx)。当用户尚未登录就访问主页(default.aspx)时,会被重定向到登录页。 ==================================================================================
源程序如下:
<%@ Import Namespace="Component" %> //引入名称空间——通过这样可以在程序中使用Component.dll中的类 <%@ Import Namespace="System.Web.Security" %> <HTML> <HEAD> <div id="outResult" runat="server"></div>
<script language="C#" runat="server"> void SubmitBtn_Click(object Source, EventArgs e){ CheckLogin cl = new CheckLogin(); //实例化组件Component中的CheckLogin类
if (inputName.Text != "") { if (inputPassword.Text != "") { //定义一个字符串,它是CheckLogin类的实例cl的成员函数isMember()的返回值 string strName = cl.isMember(inputName.Text, inputPassword.Text); if (strName != "") { FormsAuthentication.RedirectFromLoginPage(strName,false); } else { labelMessage.Text = "用户不存在!请重新输入或联系管理员"; inputName.Text = String.Empty; } } else { labelMessage.Text = "请输入密码!"; } } else { labelMessage.Text = "请输入用户名!"; } } </script> </HEAD> <BODY> <FONT FACE ="Verdana">
<H3>欢迎来到我的主页!</H3> 请登录。
<form runat="server"> 用户:<asp:textbox ID="inputName" TextMode="SingleLine" Text="" Width="200px" runat="server"/> <br/> 密码:<asp:textbox ID="inputPassword" TextMode="Password" Text="" Width="200px" runat="server"/> <br> <br> <asp:button OnClick="SubmitBtn_Click" Text="登录" runat="server"/> <br> <br> <asp:label ID="labelMessage" style="color:red" runat="server"/> </form> </FONT> </BODY> </HTML>
========================= 3)建立首页(default.aspx) =========================
源程序如下:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %> <html> <head> <script language="C#" runat="server"> protected void Page_Load(Object Src, EventArgs E) { labelUserName.Text = User.Identity.Name; // 获得经过验证的用户名 } protected void Button_OnClick(Object Src, EventArgs E) // 注销并重定向到login.aspx { FormsAuthentication.SignOut(); Response.Redirect("login.aspx"); } </script> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>首页</title> </head> <body> <form name="form1" method="post" action="" runat="server"> <table width="90%" border="0"> <tr> <td width="90%">欢迎你,<asp:label ID="labelUserName" runat="server"></asp:label> ! </td> <td width="10%"><asp:button ID="buttonSignout" Text="注销" OnClick="Button_OnClick" runat="server"/></td> </tr> </table> </form>
==================== 4)配置web.config文件 ====================
设置身份验证模式为“表单”模式:
<configuration> <system.web>
<authentication mode="Forms"> <forms name="login" loginUrl="login.aspx" protection="All" timeout="60"/> </authentication>
<authorization> <deny users="?"/> </authorization>
</system.web> </configuration> 
|