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));
        }
Example #3
0
        /// <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);
            }));
        }
Example #4
0
        /// <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));
        }
Example #5
0
 /// <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));
        }