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)); }
public JsonResult GetUserByObjectID(string userCode, string mobileToken, string targetUserId) { UserValidator sourceUser = this.UserValidator; if (sourceUser == null) { return(Json(new { }, JsonRequestBehavior.AllowGet)); } OThinker.Organization.User user = this.Engine.Organization.GetUnit(targetUserId) as OThinker.Organization.User; if (user == null) { return(Json(new { }, JsonRequestBehavior.AllowGet)); } UserValidator userValidator = UserValidatorFactory.GetUserValidator(this.Engine, user.Code); MobileAccess mobile = new MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(sourceUser, user, user.ImageUrl, userValidator.DepartmentName, string.Empty); var result = new { MobileUser = mobileUser }; 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="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 object LoginInMobile(string userCode, string password, string uuid, string jpushId, string mobileToken, string mobileType, bool isAppLogin) { OThinker.Organization.User currentUser = null; string userImage = string.Empty; OThinker.H3.Controllers.UserValidator userValidator = OThinker.H3.Controllers.UserValidatorFactory.GetUserValidator(Engine, userCode); password = HttpUtility.UrlDecode(password).Replace("_38;_", "&"); if (userValidator != null) { /* * 移动端登录:1.比较账号密码匹配;2.比较uuid和Token是否匹配 */ OThinker.Organization.User user = Engine.Organization.GetUserByCode(userCode); if (user == null || user.State == OThinker.Organization.State.Inactive || user.ServiceState == OThinker.Organization.UserServiceState.Dismissed || user.IsVirtualUser) {// 虚拟用户、离职、禁用用户不允许登录 return(new { Success = false }); } if ( (!string.IsNullOrEmpty(uuid) && userValidator.User.SID == uuid && userValidator.User.ValidateMobileToken(mobileToken)) || userValidator.User.ValidatePassword(password) ) { currentUser = userValidator.User; userImage = userValidator.ImagePath; } } if (currentUser == null) {// 登录失败 return(new { Success = false }); } FormsAuthentication.SetAuthCookie(currentUser.Code, false); // App 登录则更新 MobileToken 等信息 if (isAppLogin) { mobileToken = this.GetMobileToken(currentUser, mobileType, uuid, jpushId); } OThinker.H3.Controllers.MobileAccess mobile = new OThinker.H3.Controllers.MobileAccess(); MobileAccess.MobileUser mobileUser = mobile.GetMobileUser(userValidator, currentUser, userImage, userValidator.DepartmentName, mobileToken); var result = new { Success = true, PortalRoot = this.PortalRoot, MobileUser = mobileUser, User = mobileUser }; System.Web.HttpContext.Current.Session[Sessions.GetUserValidator()] = userValidator; // 记录登录日志 this.Engine.UserLogWriter.Write(new Tracking.UserLog() { LogType = Tracking.UserLogType.Login, SiteType = Site.PortalType.Mobile, ClientPlatform = mobileType, ClientAddress = jpushId, DeviceToken = mobileToken, UserCode = mobileUser.Code, MobileSID = uuid, UserID = mobileUser.ObjectID }); return(result); }