==============================================================================
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>