Ejemplo n.º 1
0
        public object GetInterFace(string _serviceName)
        {
            if (LoginType == "NONE" || _serviceName == "AuthorizeServerPlugin")
            {
                return(GetInterFaceObject(_serviceName));
            }
            else
            {
                SinoSZTicketInfo _currentUserInfo = CallContext.GetData("UserIdentity") as SinoSZTicketInfo;

                if (_currentUserInfo != null)
                {
                    if (TicketLib.CheckUserTicket(_currentUserInfo))
                    {
                        return(GetInterFaceObject(_serviceName));
                    }
                    else
                    {
                        throw new Exception("用户未登录系统或没有使用授权!");
                    }
                }
                else
                {
                    throw new Exception("用户未登录系统或没有使用授权!");
                }
            }
        }
Ejemplo n.º 2
0
        public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
        {
            string ticket = GetCurrentTicket();
            string ipAddr = GetIPAddress();

            if (!TicketLib.Check(ticket))
            {
                throw new FaultException("Invalid User!");
            }
            return(null);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        public static void Init(IServerApplication app, bool isWinSvc)
        {
            // 发出开始启动服务提示音
            ServerCommon.SvcBeep(SvcAction.Starting);
            application   = app;
            IsWinSvc      = isWinSvc;
            WriteTaskInfo = ConfigFile.WriteTaskStartInfo;
            //加载ZHTJ_CSB中的参数

            #region 查看ORACLE服务是否已经成功运行

            int TestTimes = 10;
            int SleepTime = 60000;
#if DEBUG
            SleepTime = 100;
#endif
            while (!OracleHelper.IsReady() && TestTimes-- > 0)
            {
                Thread.Sleep(SleepTime);
            }
            if (TestTimes < 1)
            {
                EventLogSystemLog _event = new EventLogSystemLog("SinoSZJSLog");
                string            _log   = "因数据库无法连接,启动服务失败!";
                _event.WriteLog(_log, EventLogEntryType.Error);
                throw new Exception();
            }
            #endregion

            ConfigFile.Client_ShowPendingAlert = LoadDB_CSB_Bool("Client_ShowPendingAlert");



            //建立系统日志和用户日志的写入器
            SystemLogWriter.ICS_SystemLog = new OraSysLogWriter();
            UserLogWriter.ICS_UserLog     = new OraUserLogWriter();

            application.WriteMessage("服务开始启动!");

            //清除验证票据缓存
            TicketLib.Clear();
            // 加载代码表Cache
            application.WriteMessage("开始加载代码表缓存!");
            InitRefCodeCache();
            application.WriteMessage("代码表缓存加载完毕!");


            // 加载授权信息Cache
            application.WriteMessage("开始加载授权信息缓存!");
            InitPermissionCache();
            application.WriteMessage("授权信息缓存加载完毕!");

            // 初始化Remoting服务
            application.WriteMessage("初始化Remoting服务!");
            //RemotingServerSvc.Init();
            application.WriteMessage("Remoting服务初始化完毕!");

            application.WriteMessage("注册Remoting服务工厂!");
            //RemotingServerSvc.RegisterService(typeof(IServiceFactory), typeof(BizServiceFactory));
            application.WriteMessage("Remoting服务工厂注册完毕!");



            // 启动任务服务
            application.WriteMessage("初始化任务服务!");
            InitTask();
            application.WriteMessage("任务服务初始化完成!");

            // 发出启动成功提示音
            ServerCommon.SvcBeep(SvcAction.Started);
        }