登录
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Wisdom.JPClient.WeiXin.Web.Login.Login" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link href="../Theme/myh5.css" rel="stylesheet" /> <style type="text/css"> </style> <title></title> </head> <body> <form id="form1" runat="server" autocomplete="off"> <div class="wzui-body"> <div id="personal-cnee-hd" style="height: 80px;"> <div class="wzui-fixed-placeholder"></div> <div class="wzui-fixed" style="text-align: center;"> <div class="hd-nav" style="background-color: #197FEE; height: 50px;"> <a id="nav-back" href="../index.aspx">返回</a> <a style="color: white; font-size: 30px; margin-bottom: 17px;">登录</a> </div> </div> </div> <div id="login_main"> <div class="login_main-center"> <div class="login_main-center-tip">请先登录</div> <div class="login_main-center-tel"> <div class="login_main-center-tel-div"> <asp:TextBox ID="txt_Tel" placeholder="请输入手机号码" runat="server" MaxLength="11" class="login_input" oninput="txtoninput(this);"></asp:TextBox> <a href="javascript:" onclick="ClearText(this)" style="float:right; position:relative;margin-top:-45px; margin-right:30px;display: none; width: 25px; height: 25px; background: url(../Theme/Default/images/icon_close.png) no-repeat; outline: none;"></a> </div> <div class="login_main-center-tel-div-img"> <img id="img_phone" src="../Theme/Default/images/Phone_grey.png" /> </div> </div> <div class="login_main-center-pwd"> <div class="login_main-center-pwd-div"> <asp:TextBox id="txt_Pwd" runat="server" TextMode="Password" MaxLength="25" class="login_input" placeholder="6-16位数字字母组合" oninput="txtoninput(this);"></asp:TextBox> <a href="javascript:" onclick="ClearText(this)" style="float:right; position:relative;margin-top:-45px; margin-right:30px;display: none; width: 25px; height: 25px; background: url(../Theme/Default/images/icon_close.png) no-repeat; outline: none;"></a> </div> <div class="login_main-center-pwd-img"> <img id="img_pwd" src="../Theme/Default/images/icon_password_grey.png" /> </div> </div> <div class="login_main-center-yzm" style="width:100%;"> <div style="margin-left:10px;float:right;width:20%;"> <img id="check_img" style="cursor: pointer;height:50px; margin-top:9px;" src="../CheckCode.aspx" onclick="refreshCheckCode('check_img')" /> </div> <div class="login_main-center-yzm-div" > <asp:TextBox id="txt_yzm" runat="server" class="login_input_yzm" maxlength="6" placeholder="请填写验证码"/> </div> </div> <span class="body" style="color:red; font-size:12px; display:block; width:98%;" id="span_Msg" name="spnMsg" runat="server"></span> <div class="login_main-center-btn"> <img src="../Theme/Default/images/btn_login.png" style="width: 94%; margin-left: auto; cursor: pointer;" id="btnSearch" onclick="CheckInput();" /> </div> <div class="login_main-center-zhucetip">未有账号?<a style="color: #1781EC" href="../Register/UserRegist.aspx?SchoolId=<%=Schoolid%>">注册</a></div> <div style="width:100%;height:100px;"></div> </div> </div> <asp:Button ID="btn_Login" runat="server" style="display:none;" onclick="btn_Login_Click" /> </div> <script type="text/javascript"> $(function () { $("#select_Type").focus(function () { $("#img_arrow").attr("src", "../Theme/Default/images/icon_arrow_blue.png"); }); $("#select_Type").focus(function () { $("#img_name").attr("src", "../Theme/Default/images/icon_name_blue.png"); }); $("#txt_Tel").focus(function () { $("#img_phone").attr("src", "../Theme/Default/images/Phone_-blue.png"); }); $("#txt_Pwd").focus(function () { $("#img_pwd").attr("src", "../Theme/Default/images/icon_password_blue.png"); }); $("#select_Type").blur(function () { $("#img_arrow").attr("src", "../Theme/Default/images/icon_arrow_down.png") }); $("#select_Type").blur(function () { $("#img_name").attr("src", "../Theme/Default/images/icon_name_grey.png") }); $("#txt_Tel").blur(function () { $("#img_phone").attr("src", "../Theme/Default/images/Phone_grey.png"); }); $("#txt_Pwd").blur(function () { $("#img_pwd").attr("src", "../Theme/Default/images/icon_password_grey.png"); }); }); /////验证码 function refreshCheckCode(imgCtr) { $("#" + imgCtr).attr("src", '../CheckCode.aspx?id=' + Math.random()); } function CheckInput() { if ($.trim($("#txt_Tel").val()) == "") { alert("手机号码不能为空!"); return false; } if ($.trim($("#txt_Pwd").val()) == "") { alert("密码不能为空!"); return false; } if ($.trim($("#txt_yzm").val()) == "") { alert("验证码不能为空!"); return false; } $("#btn_Login").click(); } function txtoninput(obj) { if ($.trim($(obj).val()) != "") { $(obj).next().show(); } } function ClearText(obj) { $(obj).prev().val(""); $(obj).hide(); } </script> </form> </body> </html>
/// <summary> /// 用户登录 /// </summary> /// <param name="model"></param> /// <returns></returns> public KeyValuePair<bool, string> LogOn(string UserName, string Pwd, string Schoolid, string Ip, string WxOpenId)//驾校id { KeyValuePair<bool, string> result = new KeyValuePair<bool, string>(false, ""); Hashtable ht = new Hashtable(); ht["LoginName"] = UserName; ht["Password"] = Pwd; ht["LoginIp"] = Ip; ht["SchoolId"] = Schoolid; ht["WxOpenId"] = WxOpenId; DataSet ds = dal.GetDataSetByStored("sp_WX_UserLogOn", ht); switch (ds.Tables[0].Rows[0]["LoginState"].ToString()) { case "1": { if (ds.Tables[1].Rows[0]["State"].ToString() == "1") { result = new KeyValuePair<bool, string>(true, "登录成功"); if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["Type"].ToString())) { ThisSession.IsManager = Convert.ToInt32(ds.Tables[1].Rows[0]["Type"].ToString()) == 4 ? true : false; if (Convert.ToInt32(ds.Tables[1].Rows[0]["Type"]) == 3) { //只有业务员才需要签到功能 BaiduMapLogic.LoadMapKeys(); } } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["Name"].ToString())) { ThisSession.UserName = ds.Tables[1].Rows[0]["Name"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["Type"].ToString())) { ThisSession.UserType = Convert.ToInt32(ds.Tables[1].Rows[0]["Type"]); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["id"].ToString())) { ThisSession.UserID = Convert.ToInt32(ds.Tables[1].Rows[0]["id"].ToString()); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["Telphone"].ToString())) { ThisSession.Telphone = ds.Tables[1].Rows[0]["Telphone"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["IdNumber"].ToString())) { ThisSession.IdNumber = ds.Tables[1].Rows[0]["IdNumber"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["SchoolId"].ToString())) { ThisSession.SchoolId = ds.Tables[1].Rows[0]["SchoolId"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["StuNo"].ToString())) { ThisSession.StuNo = ds.Tables[1].Rows[0]["StuNo"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["CoachId"].ToString())) { ThisSession.CoachId = ds.Tables[1].Rows[0]["CoachId"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["StaffID"].ToString())) { ThisSession.StaffID = ds.Tables[1].Rows[0]["StaffID"].ToString(); } if (!string.IsNullOrEmpty(ds.Tables[1].Rows[0]["StuId"].ToString())) { ThisSession.StuId = ds.Tables[1].Rows[0]["StuId"].ToString(); } var result_tem = dal.SelectCommand("select * from School where SchoolID=@SchoolID and IsStopUse=0 and IsDelete=0", ht); if (result_tem != null && result_tem.Rows.Count > 0) { if (!string.IsNullOrEmpty(result_tem.Rows[0]["SchoolName"].ToString())) { ThisSession.SchoolName = result_tem.Rows[0]["SchoolName"].ToString(); } } } else { result = new KeyValuePair<bool, string>(false, "当前账号已被冻结,请联系管理员"); } break; } case "2": { result = new KeyValuePair<bool, string>(false, "连续5次密码错误,已被限制登录10分钟"); break; } default: { result = new KeyValuePair<bool, string>(false, "用户名或密码错误"); break; } } return result; }
USE [DB_JP_BaseInfo00] GO /****** Object: StoredProcedure [dbo].[sp_AdminUserLogOn] Script Date: 06/17/2016 10:38:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_AdminUserLogOn] ( @LoginName nvarchar(20), @Password varchar(36), @LoginIp varchar(50), @SchoolId varchar(50) ) as begin declare @LoginTimeSpan int --限制登录时间(秒) declare @MaxErrorCount int --连续密码错误次数 declare @LoginState int --登录状态 set @LoginTimeSpan=600 --限制登录时间(秒) set @MaxErrorCount=5 --连续密码错误次数 declare @message nvarchar(50) declare @CurToken varchar(36) --登录凭证 declare @LastLoingTime datetime declare @HeadSchoolID varchar(100) declare @IsHeadSchool int if exists(select * from AdminUser where UserName=@LoginName and SchoolId=@SchoolId and IsDelete=0 and PwdErrorCount>(@MaxErrorCount-1) and dateadd(ss,@LoginTimeSpan,isnull(PwdErrorDate,'2014-11-20'))>getdate()) begin set @LoginState=2 set @message='连续5次密码错误,已被限制登录10分钟' end else if exists(select * from AdminUser where UserName=@LoginName and SchoolId=@SchoolId and [Password]=@Password and IsDelete=0) begin set @LoginState=1 set @CurToken=newid() set @message='登录成功' select @LastLoingTime=LastTime from AdminUser where UserName=@LoginName and SchoolId=@SchoolId and [Password]=@Password and IsDelete=0 update AdminUser set PwdErrorCount=0,PwdErrorDate=null,LastTime=getdate() where UserName=@LoginName and SchoolId=@SchoolId and [Password]=@Password and IsDelete=0 ----插入token表 --insert into LoginToken(Token, UserName, LoginTime, LoginState, LoginIP) --values(@CurToken,@LoginName,getdate(),1,@LoginIp) end else if exists(select * from AdminUser where UserName=@LoginName and SchoolId=@SchoolId and IsDelete=0) begin set @LoginState=3 set @message='用户名或密码错误' update AdminUser set PwdErrorCount=0 where UserName=@LoginName and SchoolId=@SchoolId and IsDelete=0 and dateadd(ss,@LoginTimeSpan,isnull(PwdErrorDate,'2014-11-20'))<getdate() update AdminUser set PwdErrorCount=PwdErrorCount+1,PwdErrorDate=getdate() where UserName=@LoginName and SchoolId=@SchoolId and IsDelete=0 end else begin set @LoginState=3 set @message='用户名或密码错误' end select @HeadSchoolID=HeadSchoolID,@IsHeadSchool=IsHeadSchool from School where SchoolId=@SchoolId --返回集合 select @LoginState as LoginState,@CurToken as ApiToken,((select SchoolId+',' from School where Isdelete=0 and HeadSchoolID=@SchoolId for xml path(''))+@SchoolId) as SchoolIds select *,@LastLoingTime LastLoingTime,@HeadSchoolID as HeadSchoolID,@IsHeadSchool as IsHeadSchool from AdminUser as a where UserName=@LoginName and SchoolId=@SchoolId and [Password]=@Password and IsDelete=0 --系统日志 if(@LoginState<>4) begin insert into OperateLog(UserLoginName,[Type],ModuleName,[Time],IP,[State],Remark,SchoolId)values(@LoginName,1,'系统登录',getdate(),@LoginIp,@LoginState,@message,@SchoolId) end end
USE [DB_JP_BaseInfo00] GO /****** Object: Table [dbo].[OperateLog] Script Date: 06/17/2016 10:39:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[OperateLog]( [LogId] [int] IDENTITY(1,1) NOT NULL, [UserLoginName] [varchar](20) NOT NULL, [Type] [int] NOT NULL, [ModuleName] [nvarchar](100) NULL, [Time] [datetime] NOT NULL, [IP] [varchar](50) NULL, [State] [tinyint] NOT NULL, [Remark] [nvarchar](100) NULL, [IsDelete] [tinyint] NOT NULL, [SchoolId] [varchar](50) NULL, CONSTRAINT [PK_OperateLog] PRIMARY KEY CLUSTERED ( [LogId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1 登录日志 2 操作日志' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'OperateLog', @level2type=N'COLUMN',@level2name=N'Type' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'驾校ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'OperateLog', @level2type=N'COLUMN',@level2name=N'SchoolId' GO ALTER TABLE [dbo].[OperateLog] ADD CONSTRAINT [DF_OperateLog_Oper_IsDelete] DEFAULT ((0)) FOR [IsDelete] GO
USE [DB_JP_BaseInfo00] GO /****** Object: Table [dbo].[AdminUser] Script Date: 06/17/2016 10:39:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[AdminUser]( [id] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](20) NOT NULL, [UserType] [int] NOT NULL, [Password] [varchar](50) NULL, [TrueName] [varchar](20) NULL, [State] [bit] NOT NULL, [LoginTimes] [int] NOT NULL, [LoginIP] [varchar](20) NULL, [LastTime] [datetime] NULL, [ThisTime] [datetime] NULL, [PwdErrorCount] [int] NULL, [PwdErrorDate] [datetime] NULL, [AddUser] [varchar](20) NULL, [AddDate] [datetime] NOT NULL, [YR_Code] [int] NULL, [YR_Message] [varchar](50) NULL, [IsDelete] [int] NOT NULL, [DepId] [int] NULL, [UserNO] [nvarchar](20) NULL, [Sex] [tinyint] NULL, [EntryTime] [datetime] NULL, [BanGongPhone] [nvarchar](20) NULL, [NeiXianPhone] [nvarchar](20) NULL, [Telphone] [nvarchar](20) NULL, [Email] [nvarchar](50) NULL, [Address] [nvarchar](150) NULL, [SchoolId] [varchar](36) NULL, CONSTRAINT [PK_AdminUser] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N' 1系统管理员 2驾校用户 3驾校管理员' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'UserType' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1正常 0冻结' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'State' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'员工工号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'UserNO' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0男 1女' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'Sex' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入职时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'EntryTime' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'办公电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'BanGongPhone' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'内线电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'NeiXianPhone' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'手机号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'Telphone' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'电子邮件' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'Email' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'家庭住址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'Address' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'驾校ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AdminUser', @level2type=N'COLUMN',@level2name=N'SchoolId' GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_UserType] DEFAULT ((0)) FOR [UserType] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_Password] DEFAULT ('e10adc3949ba59abbe56e057f20f883e') FOR [Password] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_State] DEFAULT ((1)) FOR [State] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_LoginTimes] DEFAULT ((0)) FOR [LoginTimes] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_AddDate] DEFAULT (getdate()) FOR [AddDate] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_adminuser_YR_Code] DEFAULT ((0)) FOR [YR_Code] GO ALTER TABLE [dbo].[AdminUser] ADD CONSTRAINT [DF_AdminUser_IsDelete] DEFAULT ((0)) FOR [IsDelete] GO