コード例 #1
0
        /// <summary>
        /// 登录系统
        /// </summary>
        /// <param name="_sysid"></param>
        /// <param name="_name"></param>
        /// <param name="_mwpass"></param>
        /// <returns></returns>
        public SinoUser LoginSys(string _sysid, string _name, string _mwpass, string _type)
        {
            //暂未实现
            C_SignOnBase _SignOnControler = new C_SignOnBase();
            string       _pass            = _mwpass;
            string       _ipaddr          = CallContext.GetData("ClientIP").ToString();
            string       _hostName        = "";

            try
            {
                _hostName = Dns.GetHostEntry(_ipaddr).HostName;
            }
            catch
            {
                _hostName = _ipaddr;
            }

            SinoUser _su = new SinoUser();

            _su.LoginName = _name;
            _su.UserName  = "******";
            _su.DwName    = "海关总署缉私局";

            string _yhid = "";

            if (_name.ToLower() != "administrator")
            {
                switch (ConfigFile.LoginType)
                {
                case "NONE":
                    break;

                case "TESTPASS":
                    _SignOnControler = new C_SignOnTestPass();
                    break;

                case "BASE":         //采用综合系统验证功能
                    _SignOnControler = new C_SignOnFromJS();
                    break;

                case "OGUPERMISSION":       //采用海关通用授权平台验证WEB验证的功能(不再使用)
                    _SignOnControler = new C_SignOnOGUPermission();
                    break;

                case "HGAD":      //采用域验证的方式
                    _SignOnControler = new C_SignOnHGAD();
                    break;

                case "QDHB":
                    _SignOnControler = new C_SignOnQDHBService();
                    break;

                case "HBSERVICE":
                    _SignOnControler = new C_SignOnHBSecurityService();
                    break;

                case "CUPPAPASSPORT":
                    _SignOnControler = new C_SignOnCUPPAPassport();
                    break;

                default:
                    _SignOnControler = new C_SignOnFromJS();
                    break;
                }
            }
            else
            {
                _SignOnControler = new C_SignOnAdmin();
            }

            bool _signOn = _SignOnControler.Check(_name, _pass, _type);


            if (!_signOn)
            {
                throw new Exception("用户名/口令不正确!");
            }
            //写入用户操作日志
            //SystemLogWriter.WriteLog(string.Format("验证{0}的口令成功!", _name), EventLogEntryType.Information);


            if (_name.ToLower() != "administrator")
            {
                switch (ConfigFile.LoginType)
                {
                case "CUPPAPASSPORT":
                    string _atype = C_SignOnCUPPAPassport.GetAuthType(_type);
                    _yhid = C_GetUserInfo_Cuppa.GetYHIDByName(_name, _atype);
                    break;

                default:
                    _yhid = C_GetUserInfo.GetYHIDByName(_name, _pass);
                    break;
                }
            }
            else
            {
                _yhid = "0";
            }

            if (_yhid != "-1")
            {
                _su = C_GetUserInfo.GetUserInfoByYHID(_yhid);
            }
            else
            {
                _su = C_GetUserInfo.GetNoRegisterUserByUserName(_name);
            }

            //同步登录名信息用(处理三统一的问题)
            _su.LoginName = _name;

            //SystemLogWriter.WriteLog(string.Format("取{0}的用户信息成功!", _name), EventLogEntryType.Information);

            //写入用户操作日志
            //SQLCommon.WriteUserLog(decimal.Parse(_yhid), "系统登录", string.Format("{1}使用用户名{0}登录成功!", _name, _su.UserName), 1, _ipaddr, _hostName);
            //CreateTicket(ref _su, _ipaddr);

            _su.EncryptedTicket = TicketLib.AddTicket(_name, _ipaddr);
            //SystemLogWriter.WriteLog(string.Format("生成{0}的验证票据成功!Address={1}", _name, _ipaddr), EventLogEntryType.Information);

            _su.IPAddress = _ipaddr;
            _su.SystemID  = ConfigFile.SystemID;
            LogonUserLib.AddUserInfo(_su.LoginName, _su);
            //SystemLogWriter.WriteLog(string.Format("添加用户{0}到验证用户列表成功!", _name), EventLogEntryType.Information);

            return(_su);
        }
コード例 #2
0
        /// <summary>
        /// 登录系统
        /// </summary>
        /// <param name="_sysid"></param>
        /// <param name="_name"></param>
        /// <param name="_mwpass"></param>
        /// <returns></returns>
        public SinoUser LoginSys(string _sysid, string _name, string _mwpass, string CheckType)
        {
            //暂未实现
            C_SignOnBase _SignOnControler = new C_SignOnBase();
            string       _pass            = _mwpass;
            string       _ipaddr          = WCFClientInfo.IPAddr;
            string       _hostName        = "";

            try
            {
                _hostName = Dns.GetHostEntry(_ipaddr).HostName;
            }
            catch (Exception ex)
            {
                string _err = ex.Message;
                _hostName = _ipaddr;
            }

            SinoUser _su = new SinoUser();

            _su.LoginName = _name;
            _su.UserName  = "******";
            _su.DwName    = "海关总署缉私局";

            string _yhid = "";

            if (_name.ToLower() != "administrator")
            {
                switch (ConfigFile.LoginType)
                {
                case "NONE":
                    break;

                case "TESTPASS":
                    _SignOnControler = new C_SignOnTestPass();
                    break;

                case "BASE":         //采用综合系统验证功能
                    _SignOnControler = new C_SignOnFromJS();
                    break;

                case "CUPPAPASSPORT":
                    _SignOnControler = new C_SignOnCUPPAPassport();
                    break;

                default:
                    _SignOnControler = new C_SignOnFromJS();
                    break;
                }
            }
            else
            {
                _SignOnControler = new C_SignOnAdmin();
            }

            bool _signOn = _SignOnControler.Check(_name, _pass, CheckType);


            if (_signOn)
            {
                //写入用户操作日志
            }
            else
            {
                //写入用户操作日志
                throw new Exception("用户名/口令不正确!");
            }



            if (_name.ToLower() != "administrator")
            {
                switch (ConfigFile.LoginType)
                {
                case "CUPPAPASSPORT":
#if DEBUG
                    _yhid = C_GetUserInfo.GetYHIDByName(_name, _pass);
#else
                    _yhid = C_GetUserInfo_Cuppa.GetYHIDByName(_name, CheckType);
#endif
                    break;

                default:
                    _yhid = C_GetUserInfo.GetYHIDByName(_name, _pass);
                    break;
                }
            }
            else
            {
                _yhid = "0";
            }

            if (_yhid != "-1")
            {
                _su = C_GetUserInfo.GetUserInfoByYHID(_yhid);
            }
            else
            {
                _su = C_GetUserInfo.GetNoRegisterUserByUserName(_name);
            }

            //SystemLogWriter.WriteLog(string.Format("取{0}的用户信息成功!", _name), EventLogEntryType.Information);

            //写入用户操作日志
            //SQLCommon.WriteUserLog(decimal.Parse(_yhid), "系统登录", string.Format("{1}使用用户名{0}登录成功!", _name, _su.UserName), 1, _ipaddr, _hostName);
            //CreateTicket(ref _su, _ipaddr);

            _su.EncryptedTicket = TicketLib.AddTicket(_yhid, _ipaddr);
            //SystemLogWriter.WriteLog(string.Format("生成{0}的验证票据成功!", _name), EventLogEntryType.Information);

            _su.IPAddress = _ipaddr;
            _su.SystemID  = ConfigFile.SystemID;
            LogonUserLib.AddUserInfo(_su.UserID, _su);
            //SystemLogWriter.WriteLog(string.Format("添加用户{0}到验证用户列表成功!", _name), EventLogEntryType.Information);

            return(_su);
        }
コード例 #3
0
        public static string GetYHIDByName(string _name, string AuthenticationType)
        {
            XmlElement result;
            string     User_Guid = "";
            string     objValues = "";

            if (C_SignOnCUPPAPassport.DebugMode)
            {
                //User_Guid = GetUserGuidByJS(_name);
                #region 测试XML文本取GUID
                string FilePath = C_SignOnCUPPAPassport.CUPPA_Check_DebugDataPath;
                string filename = FilePath + string.Format("\\GetYHIDByName_{0}.XML", _name);;

                System.IO.StreamReader sr = new System.IO.StreamReader(filename, System.Text.Encoding.UTF8);
                string _xmldata           = sr.ReadToEnd();

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(_xmldata);
                result = doc.DocumentElement;
                #endregion
            }
            else
            {
                try
                {
                    #region 通过三统一接口取用户的GUID信息
                    OguReaderClient _orc = new OguReaderClient();
                    objValues = string.Format(CultureInfo.InvariantCulture, "{0}&{1}", _name, AuthenticationType);
                    result    = _orc.GetObjectsDetail(CheckViewName, ViewCategory.ViewCode, objValues, ObjectCategory.UserIdentity, "", OrganizationCategory.None, "");

                    if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                    {
                        string _error = string.Format("通过三统一接口取用户的GUID信息成功,返回:{0}", result.OuterXml);
                        C_SignOnCUPPAPassport.WriteCUPPALog(_error);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    string _error = string.Format("通过三统一接口取用户的GUID信息失败!{0}  CheckViewName={2}  objectValues={3}  {1}", ex.Message, ex.StackTrace, CheckViewName, objValues);
                    if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                    {
                        C_SignOnCUPPAPassport.WriteCUPPALog(_error);
                    }
                    throw ex;
                }
            }

            try
            {
                if (result.ChildNodes.Count > 0)
                {
                    XmlNode node_diffgram        = result.ChildNodes[1];
                    XmlNode node_DocumentElement = node_diffgram.ChildNodes[0];
                    XmlNode node_OBJECTSDETAIL   = node_DocumentElement.ChildNodes[0];
                    foreach (XmlNode _node in node_OBJECTSDETAIL.ChildNodes)
                    {
                        if (_node.Name == "USER_GUID")
                        {
                            User_Guid = _node.InnerText;
                            if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                            {
                                string _error = string.Format("用户的GUID={0}", User_Guid);
                                C_SignOnCUPPAPassport.WriteCUPPALog(_error);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string _error = string.Format("解析XML数据取用户[{2}]GUID失败!{0} {1}", ex.Message, (result == null) ? "" : result.OuterXml, objValues);
                LogWriter.WriteSystemLog(_error, "ERROR");
                if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                {
                    C_SignOnCUPPAPassport.WriteCUPPALog(_error);
                }
                throw ex;
            }


            #region 通过USER_GUID取YHID
            using (SqlConnection cn = SqlHelper.OpenConnection())
            {
                try
                {
                    SqlCommand _cmd = new SqlCommand(SQL_GetYHIDByGUID, cn);
                    _cmd.CommandType = CommandType.Text;
                    _cmd.Parameters.Add("GUID", User_Guid);
                    decimal _ret = (decimal)_cmd.ExecuteScalar();
                    if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                    {
                        C_SignOnCUPPAPassport.WriteCUPPALog(string.Format("取得的YHID={0}", _ret));
                    }
                    return(_ret.ToString());
                }
                catch (Exception ex)
                {
                    string _error = string.Format("通过USER_GUID({1})取YHID失败!{0}", ex.Message, User_Guid);
                    LogWriter.WriteSystemLog(_error, "ERROR");
                    if (C_SignOnCUPPAPassport.CUPPA_Check_WriteLog)
                    {
                        C_SignOnCUPPAPassport.WriteCUPPALog(_error);
                    }
                    throw ex;
                }
            }
            #endregion
        }