/// <summary> /// 设置安全问题 /// </summary> /// <param name="param"></param> /// <returns></returns> public async Task <Result> SetSecurityQuestionAsync(SetSecurityQuestion param) { /* * 1,校验密码、questionid是否存在数据 * 2,存储user-question * 3,日志记录 * **/ var result = new Result(); var userExist = masterContext.Users.Any(a => !a.IsDisabled && a.ID == currentUser.UserID && a.Password == param.Password); if (!userExist) { result.Code = "SSO.Global.Error.Content..13"; result.Msg = "密码错误"; return(result); } var userQuestionExist = masterContext.UserSecurityQuestions.Any(a => a.UserID == currentUser.UserID); if (userQuestionExist) { result.Code = "SSO.Global.Error.Content..12"; result.Msg = "已设置安全问题"; return(result); } var question = await base.GetFirstOrDefaultAsync(a => !a.IsDisabled && a.ID == param.SecurityQuestionID, fromMasterDb : true); if (question == null) { result.Code = "SSO.Global.Error.Content..11"; result.Msg = "未知的问题选项"; return(result); } var utcNow = DateTime.UtcNow; masterContext.UserSecurityQuestions.Add(new UserSecurityQuestion { UserID = currentUser.UserID, QuestionID = param.SecurityQuestionID, Answer = param.Answer, CreateTime = utcNow, ModifyTime = utcNow }); var saveResult = await masterContext.SaveChangesAsync() > 0; //todo:异步日志记录 return(new Result() { IsSuccess = saveResult, Msg = saveResult ? null : "保存失败" }); }
public async Task <ActionResult <Result> > SetSecurityQuestionAsync(SetSecurityQuestion param) { return(await _questionService.SetSecurityQuestionAsync(param)); }