public void LoginOut() { UserValidatorFactory.Exit(this); Session.Clear(); FormsAuthentication.SignOut(); Session.Abandon(); }
public JsonResult ValidateLoginForDingTalkPC(string state, string code) { this.Engine.LogWriter.Write("DingTalkPC:进入登录方法-------------------------"); OThinker.Organization.User currentUser = null; UserValidator userValidator = null; string userImage = string.Empty; // 钉钉登录 IEngine engine = AppUtility.Engine; userValidator = UserValidatorFactory.LoginAsDingTalkPCAndReturnUserValidator(state, code); object result = null; if (userValidator == null) { result = new { Success = false }; } else { currentUser = userValidator.User; userImage = userValidator.ImagePath; MobileAccess mobile = new MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(userValidator, currentUser, userImage, string.Empty, string.Empty); FormsAuthentication.SetAuthCookie(currentUser.Code, false); // 当前用户登录 Session[Sessions.GetUserValidator()] = userValidator; result = getCurrentUser(); } return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="userCode"></param> /// <param name="mobileToken"></param> /// <param name="targetUserId"></param> public JsonResult GetUserByObjectID(string userCode, string targetUserId) { return(ExecuteFunctionRun(() => { OThinker.Organization.User user = this.Engine.Organization.GetUnit(targetUserId) as OThinker.Organization.User; if (user == null) { Json("", JsonRequestBehavior.AllowGet); } ; UserValidator userValidator = UserValidatorFactory.GetUserValidator(this.Engine, user.Code); MobileAccess mobile = new MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(this.UserValidator, user, userValidator.ImagePath, userValidator.DepartmentName, string.Empty); var result = new { MobileUser = mobileUser }; return Json(result, JsonRequestBehavior.AllowGet); })); }
/// <summary> /// 微信集成登录 /// </summary> /// <param name="context"></param> public JsonResult ValidateLoginForWeChat(string state, string code) { OThinker.Organization.User currentUser = null; UserValidator userValidator = null; string userImage = string.Empty; // 微信登录 if (this.UserValidator != null) { userValidator = this.UserValidator; } else { IEngine engine = AppUtility.Engine; userValidator = UserValidatorFactory.LoginAsWeChatReturnUserValidator(state, code); } object result = null; if (userValidator == null) { result = new { Success = false, Messages = "UserNotExist" }; } else { currentUser = userValidator.User; if (currentUser == null || currentUser.State == State.Inactive || currentUser.ServiceState == UserServiceState.Dismissed || currentUser.IsVirtualUser) { result = new { Success = false, Messages = "InvalidUser" }; } userImage = userValidator.ImagePath; MobileAccess mobile = new MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(userValidator, currentUser, userImage, string.Empty, string.Empty); result = new { Success = true, PortalRoot = this.PortalRoot, MobileUser = mobileUser, DirectoryUnits = GetDirectoryUnits(currentUser.ObjectID, userValidator) }; FormsAuthentication.SetAuthCookie(currentUser.Code, false); // 当前用户登录 Session[Sessions.GetUserValidator()] = userValidator; Session[Sessions.GetWeChatLogin()] = true; } return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 修改密码 /// </summary> /// <param name="OldPassword"></param> /// <param name="NewPassword"></param> /// <returns></returns> public JsonResult SetPassword(string OldPassword, string NewPassword) { return(this.ExecuteFunctionRun(() => { var result = false; //验证 OldPassword = OldPassword.Trim(); bool success = UserValidatorFactory.Login(Clusterware.AuthenticationType.Forms, null, this.UserValidator.UserCode, OldPassword, Site.PortalType.Portal); if (success) { this.UserValidator.User.Password = NewPassword; Engine.Organization.UpdateUnit(this.UserValidator.User.Code, this.UserValidator.User); result = true; Session[Sessions.GetUserValidator()] = this.UserValidator; } return Json(result, JsonRequestBehavior.AllowGet); }, string.Empty)); }
/// <summary> /// 钉钉集成登录 /// </summary> /// <param name="state">引擎编码</param> /// <param name="code">临时授权码</param> public JsonResult ValidateLoginForDingTalk(string state, string code) { return(ExecutionActionWithLog("DingTalkController.ValidateLoginForDingTalk", () => { OThinker.Organization.User currentUser = null; UserValidator userValidator = null; string userImage = string.Empty; // 钉钉登录 IEngine engine = AppUtility.Engine; userValidator = UserValidatorFactory.LoginAsDingTalkReturnUserValidator(state, code); object result = null; if (userValidator == null) { result = new { Success = false }; } else { currentUser = userValidator.User; userImage = userValidator.ImagePath; MobileAccess mobile = new MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(userValidator, currentUser, userImage, string.Empty, string.Empty); result = new { Success = true, PortalRoot = this.PortalRoot, MobileUser = mobileUser, DirectoryUnits = GetDirectoryUnits(mobileUser.ObjectID, userValidator) }; FormsAuthentication.SetAuthCookie(currentUser.Code, false); // 当前用户登录 Session[Sessions.GetUserValidator()] = userValidator; Session[Sessions.GetDingTalkLogin()] = true; } return Json(result, JsonRequestBehavior.AllowGet); })); }
public JsonResult LoginIn(string userCode, string password) { bool loginResult = false; object result; string enableCheckCode = System.Configuration.ConfigurationManager.AppSettings["EnableCheckCode"] + string.Empty; try { if (enableCheckCode != "0") { string[] wait = System.Configuration.ConfigurationManager.AppSettings["WaitTime"].Split(','); var sql = "SELECT COUNT(1) FROM OT_CHECKCODE WHERE STATE = 0 AND USERCODE = N'" + userCode.Replace("'", "''") + "'"; int c = Convert.ToInt32(Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar(sql) + string.Empty); int waits = 0; int.TryParse(wait[c >= wait.Length ? wait.Length - 1 : c], out waits); string ret = Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT Max(CREATETIME) FROM OT_CHECKCODE WHERE STATE = 0 AND USERCODE = N'" + userCode.Replace("'", "''") + "'") + string.Empty; DateTime dt = Convert.ToDateTime(string.IsNullOrWhiteSpace(ret) ? "2019-01-01 00:00:00" : ret); if (waits > 0 && (DateTime.Now - dt).TotalSeconds < waits) { return(Json(new { Success = false, Message = "NeedCheckCode" }, JsonRequestBehavior.AllowGet)); } } loginResult = UserValidatorFactory.Login( OThinker.Clusterware.AuthenticationType.Forms, string.Empty, userCode, password, Site.PortalType.Portal); } catch (Exception ex) { //ConnectionFailed if (ex.Message.Contains("ConnectionFailed")) { return(Json(new { Success = false, Message = "ConnectionFailed" }, JsonRequestBehavior.AllowGet)); } else if (ex.Message.Contains("PasswordInvalid")) { return(Json(new { Success = false, Message = "EnginePasswordInvalid" }, JsonRequestBehavior.AllowGet)); } } if (loginResult) { if (enableCheckCode != "0") { string sql = "UPDATE OT_CHECKCODE SET STATE = 1 WHERE USERCODE = N'" + userCode.Replace("'", "''") + "'"; Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(sql); } result = getCurrentUser(); FormsAuthentication.SetAuthCookie(this.UserValidator.User.Code, false); } else { result = new { Success = false, Message = "用户名或密码错误" }; if (enableCheckCode != "0") { string model = "INSERT INTO OT_CHECKCODE(OBJECTID,USERCODE,IP,SYSTEMINFO,BROWSER,CODE,STATE,LOGINTIME, CREATETIME)VALUES('[OBJECTID]','" + userCode.Replace("'", "''") + "','" + Request.UserHostAddress.Replace("'", "''") + "','" + Request.UserAgent.Replace("'", "''") + "','" + Request.Browser.Browser.Replace("'", "''") + "/" + Request.Browser.Version.Replace("'", "''") + "','',[STATE],to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-MM-dd HH24:mi:ss'),to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-MM-dd HH24:mi:ss'))"; string sql = model.Replace("[OBJECTID]", Guid.NewGuid().ToString()).Replace("[STATE]", "0"); Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(sql); } UserValidatorFactory.Exit(this); Session.Clear(); Session.Abandon(); } return(Json(result, JsonRequestBehavior.AllowGet)); }