<%@ 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