一个简单的用ASP.NET/C#开发的组件化Web应用程序(附源代码)

类别:.NET开发 点击:0 评论:0 推荐:

==============================================================================
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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<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>

本文地址:http://com.8s8s.com/it/it45454.htm