/// <summary> /// 修改密码 /// </summary> /// <param name="context"></param> /// <param name="xmlDoc"></param> /// <param name="sResponse"></param> private void EditAccountPwd(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse) { XmlNode xnKey = xmlDoc.SelectSingleNode("request/appkey"); XmlNode xnAccountId = xmlDoc.SelectSingleNode("request/accountid"); XmlNode xnOldPwd = xmlDoc.SelectSingleNode("request/oldpwd"); XmlNode xnNewPwd = xmlDoc.SelectSingleNode("request/newpwd"); USER_SHARE_PROJECTMODEL projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim()); if (projectModel == null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr; sResponse.ErrorDesc = "不存在的密钥KEY"; return; } else { //oldpwd参数验证 if (xnOldPwd == null || xnOldPwd.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数oldpwd"; return; } //newpwd参数验证 if (xnNewPwd == null || xnNewPwd.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数oldpwd"; return; } //账号Id int nAccountId = ValidatorHelper.ToInt(xnAccountId.InnerText.Trim(), 0); //accountid参数验证 if (xnAccountId == null || nAccountId <= 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数accountid"; return; } string strAppKey = xnKey.InnerText.Trim(); string strPwd = xnNewPwd.InnerText.Trim(); USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(nAccountId); if (accountModel == null || accountModel.ACCOUNTPWD != xnOldPwd.InnerText.Trim()) { sResponse.ErrorType = ShareEnum.ApiResultStatus.OldPassUnCorrect; sResponse.ErrorDesc = "旧密码不正确"; return; } USER_SHARE_COMPANYRELATEMODEL companyModel = CompanyBusiness.GetModel(accountModel.COMPANYID); if (companyModel == null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyNotMatchAccount; sResponse.ErrorDesc = "公司信息和账号信息不匹配"; return; } //得到原始密码 string strOrignalPwd = Enc.Decrypt(strPwd, companyModel.COMPANYCODE.ToString().PadLeft(8, '0')); //更新账号密码 if (!AccountBusiness.UpdatePwd(accountModel.ACCOUNTID, strPwd, strOrignalPwd)) { sResponse.ErrorType = ShareEnum.ApiResultStatus.ExceptionErr; sResponse.ErrorDesc = "更改密码时出现并发错误,请重试!"; return; } } }
/// <summary> /// 新开通账号 /// </summary> /// <param name="context"></param> /// <param name="xmlDoc"></param> /// <param name="sResponse"></param> private void AddAccount(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse) { XmlNode xnKey = xmlDoc.SelectSingleNode("request/appkey"); XmlNode xnCompanyCode = xmlDoc.SelectSingleNode("request/companycode"); XmlNode xnAccountName = xmlDoc.SelectSingleNode("request/accountname"); XmlNode xnAccountPwd = xmlDoc.SelectSingleNode("request/accountpwd"); XmlNode xnRealName = xmlDoc.SelectSingleNode("request/realname"); XmlNode xnEmail = xmlDoc.SelectSingleNode("request/email"); XmlNode xnCreatorId = xmlDoc.SelectSingleNode("request/creatorid"); USER_SHARE_PROJECTMODEL projectModel = null; //appkey参数验证 if (xnKey.InnerText.Trim().Length > 0) { projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim()); if (projectModel == null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr; sResponse.ErrorDesc = "不存在的密钥KEY"; context.Response.Write(sResponse.GetXML()); return; } else { //companycode参数验证 if (xnCompanyCode == null || xnCompanyCode.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数companycode"; return; } if (!CompanyBusiness.IsCompanyCodeExists(xnCompanyCode.InnerText.Trim())) { sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidCompanyCode; sResponse.ErrorDesc = "不存在的公司编码信息"; return; } //accountpwd参数验证 if (xnAccountPwd == null || xnAccountPwd.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数accountpwd"; return; } //accountname参数验证 if (xnAccountName == null || xnAccountName.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数accountname"; return; } //判断账号是否重复 USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(xnAccountName.InnerText.Trim(), xnCompanyCode.InnerText.Trim()); if (accountModel != null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.AccountNameExists; sResponse.ErrorDesc = "已经存在此账号,请确认!"; return; } //realname参数验证 if (xnRealName == null || xnRealName.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数realname"; return; } //email参数验证 if (xnEmail == null || xnEmail.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数email"; return; } //creatorid参数验证 if (xnCreatorId == null || xnCreatorId.InnerText.Trim().Length == 0 || ValidatorHelper.ToInt(xnCreatorId.InnerText.Trim(), 0) == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数creatorid"; return; } //账号信息 accountModel = new USER_SHARE_ACCOUNTMODEL(); accountModel.ACCOUNTID = CommonBusiness.GetSeqID("S_USER_SHARE_ACCOUNT"); accountModel.ACCOUNTNAME = xnAccountName.InnerText.Trim(); accountModel.ACCOUNTPWD = xnAccountPwd.InnerText.Trim(); accountModel.COMPANYID = Convert.ToInt32(xnCompanyCode.InnerText.Trim()); accountModel.ORIGNALPWD = Enc.Decrypt(accountModel.ACCOUNTPWD, accountModel.COMPANYID.ToString().PadLeft(8, '0')); accountModel.CREATEDATE = DateTime.Now; accountModel.REALNAME = xnRealName.InnerText.Trim(); accountModel.EMAIL = xnEmail.InnerText.Trim(); accountModel.STATUS = int.Parse(ShareEnum.AccountStatus.Normal.ToString("d")); accountModel.ISADMIN = 0; accountModel.CREATORID = Convert.ToInt32(xnCreatorId.InnerText.Trim()); //日志信息 USER_SHARE_LOGMODEL logModel = new USER_SHARE_LOGMODEL(); logModel.LOGID = CommonBusiness.GetSeqID("S_USER_SHARE_LOG"); logModel.OPERATEDATE = DateTime.Now; logModel.OPERATORID = accountModel.CREATORID; logModel.PROJECTID = projectModel.PROJECTID; logModel.COMPANYID = accountModel.COMPANYID; logModel.OPERATETYPE = int.Parse(ShareEnum.LogType.AddAccount.ToString("d")); logModel.OPERATECONTENT = string.Format("通过接口新增账号信息,账号名称:{0},公司ID:{1} ", xnAccountName.InnerText.Trim(), accountModel.COMPANYID); if (AccountBusiness.AddAccount(accountModel, logModel)) { sResponse.Result = string.Format("<accountid>{0}</accountid>", accountModel.ACCOUNTID); } } } }
/// <summary> /// 账号登陆 /// </summary> /// <param name="context"></param> /// <param name="xmlDoc"></param> /// <param name="sResponse"></param> private void AccountLogin(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse) { XmlNode xnKey = xmlDoc.SelectSingleNode("request/appkey"); XmlNode xnCompanyCode = xmlDoc.SelectSingleNode("request/companycode"); XmlNode xnAccountName = xmlDoc.SelectSingleNode("request/accountname"); XmlNode xnAccountPwd = xmlDoc.SelectSingleNode("request/accountpwd"); USER_SHARE_PROJECTMODEL projectModel = null; //appkey参数验证 if (xnKey.InnerText.Trim().Length > 0) { projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim()); if (projectModel == null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr; sResponse.ErrorDesc = "不存在的密钥KEY"; context.Response.Write(sResponse.GetXML()); return; } else { //companycode参数验证 if (xnCompanyCode == null || xnCompanyCode.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数companycode"; return; } if (!CompanyBusiness.IsCompanyCodeExists(xnCompanyCode.InnerText.Trim())) { sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidCompanyCode; sResponse.ErrorDesc = "不存在的公司编码信息"; return; } //accountpwd参数验证 if (xnAccountPwd == null || xnAccountPwd.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数accountpwd"; return; } //accountname参数验证 if (xnAccountName == null || xnAccountName.InnerText.Trim().Length == 0) { sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr; sResponse.ErrorDesc = "缺少传入参数accountname"; return; } string strAppKey = xnKey.InnerText.Trim(); string strCompanyCode = xnCompanyCode.InnerText.Trim(); string strAccountName = xnAccountName.InnerText.Trim(); string strPwd = xnAccountPwd.InnerText.Trim(); USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(strCompanyCode, strAccountName, strPwd); if (accountModel == null) { sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidUser; sResponse.ErrorDesc = "用户名和密码不匹配"; return; } if (accountModel.STATUS != int.Parse(ShareEnum.AccountStatus.Normal.ToString("d"))) { sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidUser; sResponse.ErrorDesc = "此用户已停用"; return; } USER_SHARE_COMPANYRELATEMODEL companyModel = CompanyBusiness.GetModel(accountModel.COMPANYID); //不存在公司信息或 公司编码和传入的编码不一致 if (companyModel == null || companyModel.COMPANYCODE.ToString() != strCompanyCode) { sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyNotMatchAccount; sResponse.ErrorDesc = "公司信息和账号信息不匹配"; return; } if (companyModel.STATUS != int.Parse(ShareEnum.CompanyRelateStatus.Normal.ToString("d"))) { sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyStopUse; sResponse.ErrorDesc = "此公司已停用"; return; } StringBuilder sbContent = new StringBuilder(); sbContent.AppendFormat("<accountid>{0}</accountid>", accountModel.ACCOUNTID); sbContent.AppendFormat("<truename>{0}</truename>", accountModel.REALNAME); sbContent.AppendFormat("<companyid>{0}</companyid>", companyModel.COMPANYID); sbContent.AppendFormat("<companyname>{0}</companyname>", companyModel.COMPANYNAME); sbContent.AppendFormat("<sharecompanyid>{0}</sharecompanyid>", companyModel.SHARECOMPANYID); sbContent.AppendFormat("<sharecompanyname>{0}</sharecompanyname>", companyModel.COMPANYNAME); sbContent.AppendFormat("<productids>{0}</productids>", companyModel.PRODUCTIDS); sbContent.AppendFormat("<groupid>{0}</groupid>", companyModel.GROUPID); sbContent.AppendFormat("<groupname>{0}</groupname>", companyModel.COMPANYNAME); sbContent.AppendFormat("<groupidn>{0}</groupidn>", companyModel.GROUPIDN); sbContent.Append("<accountmenu>"); //账户拥有的菜单返回 DataTable dt = CompanyFunBusiness.GetAccountFunMenu(accountModel.ACCOUNTID, accountModel.ISADMIN, projectModel.PROJECTID, accountModel.COMPANYID); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { sbContent.AppendFormat(@"<menuitem><menuid>{0}</menuid><name>{1}</name> <linkurl>{2}</linkurl><parentid>{3}</parentid><sortnum>{4}</sortnum> <desc>{5}</desc></menuitem>", dr["FMID"], dr["CFANOTHERNAME"], dr["CFPAGEURL"], dr["CFPARENTID"], dr["CFSORTNUM"], dr["CFDESC"]); } } sbContent.Append("</accountmenu>"); sResponse.Result = sbContent.ToString(); } } }
private void SysLogin(int nAccountId, string strAccount, string strPwd, string strAppKey, string strCompanyCode) { #region 登录 USER_SHARE_ACCOUNTMODEL account = null; if (nAccountId > 0) { account = AccountBusiness.GetAccountModel(nAccountId); } else { account = AccountBusiness.GetAccountModel(strCompanyCode, strAccount, strPwd); } if (account == null) { Alert(nAccountId > 0 ? "不存在此账号!" : "用户名密码不匹配!"); return; } else { if (account.STATUS != int.Parse(ShareEnum.AccountStatus.Normal.ToString("d"))) { Alert("此账号已无效,请确认!"); return; } USER_SHARE_PROJECTMODEL project = null; if (strAppKey.Length > 0) { project = ProjectBusiness.GetProjectModelByKey(strAppKey); if (project == null) { Alert("不存在的项目密钥,请确认!"); return; } if (project.STATUS == int.Parse(ShareEnum.ProjectStatus.StopUse.ToString("d"))) { Alert("此项目已停用,请确认!"); return; } } USER_SHARE_COMPANYRELATEMODEL company = CompanyBusiness.GetModel(account.COMPANYID); if (company == null) { Alert("不存在的公司信息,请确认!"); return; } if (company.STATUS.ToString() == ShareEnum.CompanyRelateStatus.StopUse.ToString("d")) { Alert("此公司信息已无效,请确认!"); return; } if (company.COMPANYCODE.ToString() != strCompanyCode) { Alert("公司信息和账号信息不匹配"); return; } int nProjectId = ValidatorHelper.ToInt(CommonMethod.GetConfigValue("SYSPROJECTID"), 0); HttpCookie ck = new HttpCookie("USP"); ck.Values.Add("AccountId", account.ACCOUNTID.ToString()); ck.Values.Add("RealName", Server.UrlEncode(account.REALNAME)); ck.Values.Add("ProjectId", project == null ? "0" : project.PROJECTID.ToString()); ck.Values.Add("CompanyId", account.COMPANYID.ToString()); ck.Values.Add("GroupId", CommonMethod.FinalString(company.GROUPID)); ck.Values.Add("CompanyName", Server.UrlEncode(company.COMPANYNAME)); ck.Values.Add("CompanyCode", company.COMPANYCODE.ToString()); Response.Cookies.Add(ck); //由登录页面进入 if (strAppKey.Length == 0) { //公司编码记录到Cookie HttpCookie ckCode = new HttpCookie("CompanyCode"); ckCode.Values.Add("CompanyCode", txtCompanyCode.Text.Trim()); Response.Cookies.Add(ckCode); } //获取菜单 DataTable dt = CompanyFunBusiness.GetAccountFunMenu(account.ACCOUNTID, account.ISADMIN, nProjectId, account.COMPANYID); if (dt != null) { DataRow[] rows = dt.Select("PROJECTID=" + nProjectId, ""); if (rows != null && rows.Length > 0) { Response.Redirect(rows[0]["CFPAGEURL"].ToString()); } else { Alert("您没有此系统权限!"); return; } } else { Alert("您没有此系统权限!"); return; } } #endregion }