从零开始编写自己的C#框架(15)——Web层后端登陆功能

本文介绍如何从零开始创建一个C#后端管理系统的登录页面,包括项目创建、HTML代码编写、登录验证流程及数据库表结构设计。

对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证、用户在线记录、相关日志记录、单用户或多用户使用帐号控制等,都是在这个页面进行处理的。

 

  1、在解决方案中创建一个Web项目,并将它设置为启动项

  

 

  2、添加引用

  

  

  

 

  3、添加WebManage文件夹与Login.aspx文件

  

  

  4、添加登陆页面HTML代码  

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Solution.Web.Managers.WebManage.Login" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4 <html xmlns="http://www.w3.org/1999/xhtml">
 5 <head id="Head1" runat="server">
 6     <title>从零开始编写自己的C#框架——后端管理系统</title>
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <link rel="stylesheet" href="Css/login.css" />
 9     <script type="text/javascript">
10         function Random(n) { return (Math.floor(Math.random() * n)); };
11 
12         function AjaxRnd() { return new Date().getTime() + '' + Random(10000); };
13 
14         function ShowKey() {
15             document.getElementById("img_verifycode").src = "Base/Vcode.ashx?a=" + AjaxRnd();
16         };
17     </script>
18 </head>
19 <body>
20     <!--CENTER开始-->
21     <div class="login-container">
22         <form id="form1" runat="server">
23         <div class="login-header">
24             <h3>
25                 Login</h3>
26         </div>
27         <div id="login-content" class="clearfix">
28             <div>
29                 <label>
30                     用户名</label>
31                 <div>
32                     <asp:TextBox runat="server" ID="txtusername" CssClass="input w92" />
33                 </div>
34                 <label>
35                     密码</label>
36                 <div>
37                     <asp:TextBox runat="server" ID="txtpass" CssClass="input w92" TextMode="Password" />
38                 </div>
39                 <label>
40                     验证码</label>
41                 <div>
42                     <asp:TextBox runat="server" ID="txtcode" CssClass="input w100 fl" />
43                     <asp:Image ID="img_verifycode" runat="server" onclick="ShowKey();" ToolTip="更换验证码"
44                         ImageUrl="Base/Vcode.ashx" />
45                     <div class="fc"></div>
46                 </div>
47             </div>
48             <div>
49                 <asp:Button ID="BtnLogin" CssClass="btn" runat="server" OnClick="BtnLogin_Click"
50                     Text="登陆" />
51             </div>
52         </div>
53         </form>
54     </div>
55     <!--CENTER结束-->
56 </body>
57 </html>
View Code

  css样式在本文后面的解决方案中有

  浏览一下效果

  

 

  5、后端管理系统登陆验证流程图

  我们根据下面的流程图来编写登陆页代码

 

  6、添加在线列表数据表并修改管事员表相关字段

  执行下面SQL语句

  1 /****** Object:  Table [dbo].[Manager]    Script Date: 2014/6/4 22:27:52  ******/
  2 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Manager]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  3 drop table [dbo].[Manager]
  4 GO
  5 
  6 /****** Object:  Table [dbo].[Manager]    Script Date: 2014/6/4 22:27:52   ******/
  7 CREATE TABLE [dbo].[Manager] (
  8   [Id] [int] IDENTITY (1, 1) NOT NULL,
  9   [LoginName] [nvarchar] (20) NOT NULL,
 10   [LoginPass] [nvarchar] (32) NOT NULL,
 11   [LoginTime] [datetime] NOT NULL,
 12   [LoginIp] [nvarchar] (30) NOT NULL,
 13   [LoginCount] [int] NOT NULL,
 14   [CreateTime] [datetime] NOT NULL,
 15   [UpdateTime] [datetime] NOT NULL,
 16   [IsMultiUser] [tinyint] NOT NULL,
 17   [Branch_Id] [int] NOT NULL,
 18   [Branch_Code] [nvarchar] (20) NOT NULL,
 19   [Branch_Name] [nvarchar] (25) NOT NULL,
 20   [Position_Id] [nvarchar] (100) NOT NULL,
 21   [Position_Name] [nvarchar] (30) NOT NULL,
 22   [IsWork] [tinyint] NOT NULL,
 23   [IsEnable] [tinyint] NOT NULL,
 24   [CName] [nvarchar] (20) NOT NULL,
 25   [EName] [nvarchar] (50) NOT NULL,
 26   [PhotoImg] [nvarchar] (250) NOT NULL,
 27   [Sex] [nvarchar] (4) NOT NULL,
 28   [Birthday] [nvarchar] (20) NOT NULL,
 29   [NativePlace] [nvarchar] (100) NOT NULL,
 30   [NationalName] [nvarchar] (50) NOT NULL,
 31   [Record] [nvarchar] (25) NOT NULL,
 32   [GraduateCollege] [nvarchar] (30) NOT NULL,
 33   [GraduateSpecialty] [nvarchar] (50) NOT NULL,
 34   [Tel] [nvarchar] (30) NOT NULL,
 35   [Mobile] [nvarchar] (30) NOT NULL,
 36   [Email] [nvarchar] (50) NOT NULL,
 37   [Qq] [nvarchar] (30) NOT NULL,
 38   [Msn] [nvarchar] (30) NOT NULL,
 39   [Address] [nvarchar] (100) NOT NULL,
 40   [Content] [ntext] NOT NULL,
 41   [Manager_Id] [int] NOT NULL,
 42   [Manager_CName] [nvarchar] (20) NOT NULL
 43 ) ON [PRIMARY]
 44 GO
 45 
 46 ALTER TABLE [dbo].[Manager] WITH NOCHECK ADD
 47   CONSTRAINT [PK_Manager] PRIMARY KEY  CLUSTERED
 48 (
 49  [Id]
 50 )  ON [PRIMARY]
 51 GO
 52 
 53 ALTER TABLE [dbo].[Manager] ADD
 54   CONSTRAINT [DF_Manager_LoginName] DEFAULT ('') FOR [LoginName],
 55   CONSTRAINT [DF_Manager_LoginPass] DEFAULT ('') FOR [LoginPass],
 56   CONSTRAINT [DF_Manager_LoginTime] DEFAULT (getdate()) FOR [LoginTime],
 57   CONSTRAINT [DF_Manager_LoginIp] DEFAULT ('') FOR [LoginIp],
 58   CONSTRAINT [DF_Manager_LoginCount] DEFAULT (0) FOR [LoginCount],
 59   CONSTRAINT [DF_Manager_CreateTime] DEFAULT (getdate()) FOR [CreateTime],
 60   CONSTRAINT [DF_Manager_UpdateTime] DEFAULT (getdate()) FOR [UpdateTime],
 61   CONSTRAINT [DF_Manager_IsMultiUser] DEFAULT (0) FOR [IsMultiUser],
 62   CONSTRAINT [DF_Manager_Branch_Id] DEFAULT (0) FOR [Branch_Id],
 63   CONSTRAINT [DF_Manager_Branch_Code] DEFAULT ('') FOR [Branch_Code],
 64   CONSTRAINT [DF_Manager_Branch_Name] DEFAULT ('') FOR [Branch_Name],
 65   CONSTRAINT [DF_Manager_Position_Id] DEFAULT ('') FOR [Position_Id],
 66   CONSTRAINT [DF_Manager_Position_Name] DEFAULT ('') FOR [Position_Name],
 67   CONSTRAINT [DF_Manager_IsWork] DEFAULT (0) FOR [IsWork],
 68   CONSTRAINT [DF_Manager_IsEnable] DEFAULT (1) FOR [IsEnable],
 69   CONSTRAINT [DF_Manager_CName] DEFAULT ('') FOR [CName],
 70   CONSTRAINT [DF_Manager_EName] DEFAULT ('') FOR [EName],
 71   CONSTRAINT [DF_Manager_PhotoImg] DEFAULT ('') FOR [PhotoImg],
 72   CONSTRAINT [DF_Manager_Sex] DEFAULT ('') FOR [Sex],
 73   CONSTRAINT [DF_Manager_Birthday] DEFAULT ('') FOR [Birthday],
 74   CONSTRAINT [DF_Manager_NativePlace] DEFAULT ('') FOR [NativePlace],
 75   CONSTRAINT [DF_Manager_NationalName] DEFAULT ('') FOR [NationalName],
 76   CONSTRAINT [DF_Manager_Record] DEFAULT ('') FOR [Record],
 77   CONSTRAINT [DF_Manager_GraduateCollege] DEFAULT ('') FOR [GraduateCollege],
 78   CONSTRAINT [DF_Manager_GraduateSpecialty] DEFAULT ('') FOR [GraduateSpecialty],
 79   CONSTRAINT [DF_Manager_Tel] DEFAULT ('') FOR [Tel],
 80   CONSTRAINT [DF_Manager_Mobile] DEFAULT ('') FOR [Mobile],
 81   CONSTRAINT [DF_Manager_Email] DEFAULT ('') FOR [Email],
 82   CONSTRAINT [DF_Manager_Qq] DEFAULT ('') FOR [Qq],
 83   CONSTRAINT [DF_Manager_Msn] DEFAULT ('') FOR [Msn],
 84   CONSTRAINT [DF_Manager_Address] DEFAULT ('') FOR [Address],
 85   CONSTRAINT [DF_Manager_Content] DEFAULT ('') FOR [Content],
 86   CONSTRAINT [DF_Manager_Manager_Id] DEFAULT (0

转载于:https://www.cnblogs.com/FinleyJiang/p/7600813.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值