110,533
社区成员
发帖
与我相关
我的任务
分享
<img src="/Admin/Account/NumberValidateImg?userType=teacher" id="teachervalidimg" class="login-code" onclick="ShowValidate('teacher')" />
<img src="/Admin/Account/NumberValidateImg?userType=student" id="studentvalidimg" class="login-code" onclick="ShowValidate('student')" />
//控制器生成登录验证码
public FileContentResult NumberValidateImg(string userType)
{
ValidateCode validateCode = new ValidateCode();
var ms = validateCode.CreateNumberCode(userType, 4);
Response.BinaryWrite(ms.ToArray());
return File(ms.ToArray(), MediaTypeNames.Image.Jpeg);
}
/// <summary>
/// 创建数字验证码
/// </summary>
/// <param name="textLength">数字的长度</param>
/// <returns>返回图片内存流</returns>
public MemoryStream CreateNumberCode(string strUserType,int textLength)
{
int ranCount = textLength;
string outcode = "";
Random ran = new Random();
for (int h = 0; h < ranCount; h++)
{
outcode += ran.Next(9).ToString();
}
MemoryStream m = CreateTextImage(outcode);
HttpContext.Current.Session[strUserType+"ValidateImgCode"] = outcode;
return m;
}
[AnonymousAttribute]
[HttpPost]
public JsonResult TeacherLogin([Bind(Prefix = "Teacher")] TeacherLoginModel model)
{
try
{
model.IsRemind = false;
//验证码开启状态
if (!new ValidateCode().IsUseValidate)
ModelState.Remove("Teacher.ValidateCode");
if (!ModelState.IsValid)
{
foreach (var state in ModelState)
{
foreach (var err in state.Value.Errors)
{
return Json(new
{
Code = "-1",
Desc = err.ErrorMessage
});
}
}
}
//登录
AdminSystemLogin adminSystemLogin = new AdminSystemLogin(model.UserName, model.Password, model.ValidateCode, model.IsRemind);
var response = adminSystemLogin.Login();
return Json(response);
}
catch (Exception ex)
{
return Json(new
{
Code = "-1",
Desc = ex.Message
});
}
}
public ResponseModel Login()
{
ResponseModel response = new ResponseModel();
response.Code = "0";
response.Desc = "效验成功";
//验证码效验
if (_validateCode.IsUseValidate) {
if (!_validateCode.ValidateImgCode("teacher",this.validateCode)) {
response.Code = "-1";
response.Desc = "验证码错误";
return response;
}
}
.....................................
return response;
}
/// <summary>
/// 验证码效验
/// </summary>
/// <param name="validateCode">用户输入的验证码</param>
/// <returns></returns>
public bool ValidateImgCode(string strUserType,string validateCode)
{
bool result = true;
if (HttpContext.Current.Session[strUserType+"ValidateImgCode"] == null || !string.Equals(HttpContext.Current.Session[strUserType+"ValidateImgCode"].ToString(), validateCode, StringComparison.OrdinalIgnoreCase))
{
result = false;
}
return result;
}
protected void Session_Start(object sender, EventArgs e)
{
//加入这个方法是为了解决第一次请求sessionid变化问题,具体原因未知
}
protected void Session_End(object sender, EventArgs e)
{
//加入这个方法是为了解决第一次请求sessionid变化问题,具体原因未知
}
姓名 | <input id="user" name="user" type="text" /></td> |
密码 | <input id="psw" name="psw" type="text" /></td> |
<input type="submit" value="提交"/><input type="button" value="返回" /> |