示例#1
0
/// <summary>
/// 检测用户登录

/// </summary>
/// <returns>0 成功</returns>
    public string checkUserLogin( )
    {
        try
        {
            //  in varchar2,  user_id_ in varchar2,
            //   pass_word_ in varchar2 ,user_ip_  in varchar2
            string clientip = fun.getClientIp();

            string    sql   = "Select PKG_User.checkUserLogin('" + _comp_no + "','" + _user_id + "','" + _pass_word.Replace("'", "''") + "','" + clientip + "','" + _if_check__ + "') as c from dual ";
            DataTable dt    = new DataTable();
            int       li_db = fun.db.ExcuteDataTable(dt, sql, CommandType.Text);
            if (li_db < 0)
            {
                return("01执行校验失败!");
            }
            int li_res = int.Parse(dt.Rows[0][0].ToString());
            if (li_res < 0)
            {
                return(usermsg.getMsgByMsgId("100001", ""));
            }
            /*登录成功以后执行写日志和写事务*/

            DataTable dt_key = new DataTable();
            sql   = "select s_a300.nextval  as c  from dual ";
            li_db = fun.db.ExcuteDataTable(dt_key, sql, CommandType.Text);
            if (li_db < 0)
            {
                return("01执行校验失败!");
            }
            sql = "Select  a022_name  from a022 t where  a022_id='CHECK_MAC_NAME' ";

            string    CHECK_MAC_NAME = "1";
            DataTable dt_a           = new DataTable();
            dt_a = fun.getDtBySql(sql);
            if (dt_a.Rows.Count > 0)
            {
                CHECK_MAC_NAME = dt_a.Rows[0][0].ToString();
                if (CHECK_MAC_NAME != "1")
                {
                    CHECK_MAC_NAME = "0";
                }
            }
            if (CHECK_MAC_NAME == "1")
            {
                try
                {
                    System.Net.IPHostEntry hostInfo = System.Net.Dns.GetHostByAddress(clientip);

                    sql = "PKG_User.UserLogin('" + _user_id + "','" + clientip + "'," + dt_key.Rows[0][0].ToString() + ",'" + hostInfo.HostName + "','WEB','" + _comp_no + "')";
                }
                catch
                {
                    sql = "PKG_User.UserLogin('" + _user_id + "','" + clientip + "'," + dt_key.Rows[0][0].ToString() + ",'" + clientip + "','WEB','" + _comp_no + "')";
                }
            }
            else
            {
                sql = "PKG_User.UserLogin('" + _user_id + "','" + clientip + "'," + dt_key.Rows[0][0].ToString() + ",'" + clientip + "','WEB','" + _comp_no + "')";
            }
            string res = fun.execSql(sql, _user_id, "login");
            if (res != "0")
            {
                return(res);
            }
            /*初始化 把用户数据 记录到session中*/

            if (GlobeAtt.A007_KEY != "")
            {
                if (_user_id != GlobeAtt.A007_KEY)
                {
                    HttpContext.Current.Session.Clear();
                }
            }

            //用户属性
            HttpContext.Current.Session["USER_ID"]    = _user_id;
            HttpContext.Current.Session["A007_KEY"]   = _user_id;
            HttpContext.Current.Session["A30001_KEY"] = dt_key.Rows[0][0].ToString();

            DataTable dt_a007 = new DataTable();
            sql   = "Select t.* from A007_v01 t where a007_id= '" + _user_id + "'";
            li_db = fun.db.ExcuteDataTable(dt_a007, sql, CommandType.Text);
            if (li_db < 0)
            {
                return("01执行校验失败!");
            }
            HttpContext.Current.Session["A007_NAME"] = dt_a007.Rows[0]["A007_NAME"].ToString();

            HttpContext.Current.Session["LANGUAGE_ID"] = dt_a007.Rows[0]["LANGUAGE_ID"].ToString();


            DataTable dt_dataindex = new DataTable();
            dt_dataindex = fun.getDtBySql("select f_get_data_index() as c  from dual ");
            string v = dt_dataindex.Rows[0][0].ToString();
            dt_dataindex.Dispose();
            HttpContext.Current.Session["DATA_INDEX"] = v;

            DataTable dt_config = new DataTable();

            sql = "Select pkg_show.getSysConfig('" + _user_id + "') as c from dual ";

            DataTable dt_temp = new DataTable();
            dt_temp = fun.getDtBySql(sql);

            sql = dt_temp.Rows[0][0].ToString();


            dt_config = fun.getDtBySql(sql);


            for (int i = 0; i < dt_config.Columns.Count; i++)
            {
                string column_id = dt_config.Columns[i].ColumnName.ToUpper();
                HttpContext.Current.Session["CFG_" + column_id] = dt_config.Rows[0][i].ToString();
            }
            string ls_cfg = fun.DataTable2Json(dt_config);
            HttpContext.Current.Session["CFG"] = ls_cfg;


            DataTable dt_a022 = new DataTable();
            sql     = "Select t.* from A022 t ";
            dt_a022 = fun.getDtBySql(sql);
            for (int i = 0; i < dt_a022.Rows.Count; i++)
            {
                string a022_id   = dt_a022.Rows[i]["A022_ID"].ToString();
                string a002_name = dt_a022.Rows[i]["A022_NAME"].ToString();
                a002_name = a002_name.Replace("[USER_ID]", GlobeAtt.A007_KEY);
                a002_name = a002_name.Replace("[A30001_KEY]", GlobeAtt.A30001_KEY);
                string if_exec = dt_a022.Rows[i]["if_exec"].ToString();
                if (if_exec == "1")
                {
                    DataTable dt_exec = new DataTable();
                    dt_exec   = fun.getDtBySql(a002_name);
                    a002_name = dt_exec.Rows[0][0].ToString();
                }
                HttpContext.Current.Session[a022_id.ToUpper()] = a002_name;
            }
            try
            {
                string LINK_A007_ID = HttpContext.Current.Session["LINK_A007_ID"].ToString();
                if (LINK_A007_ID != _user_id)
                {
                    HttpContext.Current.Session["LINK_P_URL"] = "";
                }
            }
            catch
            {
                HttpContext.Current.Session["LINK_P_URL"] = "";
            }

            /* = fun.getA022Name("QueryList_PageRow");
             * HttpContext.Current.Session["QueryList_MaxRow"] = fun.getA022Name("QueryList_MaxRow");
             * HttpContext.Current.Session["DetailRowS"] = fun.getA022Name("DetailRowS");
             * HttpContext.Current.Session["BS_LOG_SQL"] = fun.getA022Name("BS_LOG_SQL");
             * HttpContext.Current.Session["BS_LOG_A314"] = fun.getA022Name("BS_LOG_A314");
             * HttpContext.Current.Session["SYS_MODE"] = fun.getA022Name("SYS_MODE");
             * HttpContext.Current.Session["BS_LOG_SELECTSQL"] = fun.getA022Name("BS_LOG_SELECTSQL");
             * HttpContext.Current.Session["QUERY_LIKE"] = fun.getA022Name("QUERY_LIKE");
             */
            //HttpContext.Current.Session["A007"] = fun.setPkSYS_MODEgStr(dt_a007);


            //DataTable dt_a00701 = new DataTable();
            //sql = "Select t.* from A00701 t  where a007_key= " + li_res.ToString();
            //li_db = fun.db.ExcuteDataTable(dt_a00701, sql, CommandType.Text);
            //if (li_db < 0)
            //{
            //    return "01执行校验失败!";
            //}

            //HttpContext.Current.Session["A013"] = fun.setPkgStr(dt_a00701);



            ///*登录的日志信息*/
            //DataTable dt_a30001 = new DataTable();
            //sql = "Select t.* from A30001 t where a30001_key= " + dt_key.Rows[0][0].ToString();
            //li_db = fun.db.ExcuteDataTable(dt_a30001, sql, CommandType.Text);
            //if (li_db < 0)
            //{
            //    return "01执行校验失败!";
            //}
            //HttpContext.Current.Session["A30001"] = fun.setPkgStr(dt_a007);


            return("02[HTTP_URL]/default.aspx");
        }
        catch (Exception ex)
        {
            return("00" + ex.Message.Replace("\n", ";").Replace("'", "\""));
        }
    }
示例#2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ReturnCode = "0";
        try
        {
            Stream       RequestStream       = Request.InputStream;
            StreamReader RequestStreamReader = new StreamReader(RequestStream);
            RequestXml = RequestStreamReader.ReadToEnd();
            RequestStream.Close();
        }
        catch (Exception ex)
        {
            ReturnCode    = "-1";
            ReturnMessage = "错误报文格式!";
            Error_Resp("0", "errorresp");
            return;
        }

        string clientip = Fun.getClientIp();

        //      '&' (ampersand) becomes '&amp;'
        RequestXml = RequestXml.Replace("&amp;", "&");


        //'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
        RequestXml = RequestXml.Replace("&quot;", "\"");


        //''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.

        RequestXml = RequestXml.Replace("&#039;", "'");
        //'<' (less than) becomes '&lt;'

        RequestXml = RequestXml.Replace("&lt;", "<");
        //'>' (greater than) becomes '&gt;'
        RequestXml = RequestXml.Replace("&gt;", ">");

        SaveLog.Verification(clientip + ":" + RequestXml);
        //获取MessageName
        try
        {
            MessageName = BaseFun.getAllHyperLinks(RequestXml, "<messagename>", "</messagename>")[0].Value;
            MessageName = MessageName.Substring(0, MessageName.Length - 3);
        }
        catch (Exception ex)
        {
            ReturnCode    = "-1";
            ReturnMessage = "错误报文格式(-1)!";
            Error_Resp("0", "errorresp");
            return;
        }

        try
        {
            //检测报文消息的有效性
            string    sql     = "Select t.* from A319 t where  a319_id='" + MessageName + "'";
            DataTable dt_a319 = new DataTable();
            dt_a319 = Fun.getDtBySql(sql);
            if (dt_a319.Rows.Count == 0)
            {
                ReturnCode    = "-1";
                ReturnMessage = "错误报文格式(-2)!" + MessageName + sql;
                Error_Resp("0", MessageName);
                return;
            }
            if (dt_a319.Rows[0]["A319_TYPE"].ToString() == "0")
            {
                ReturnCode    = "-1";
                ReturnMessage = "错误报文格式(-3)!" + MessageName;
                Error_Resp("0", MessageName);
                return;
            }
            //检测报文状态失败有效
            if (dt_a319.Rows[0]["STATE"].ToString() != "1")
            {
                ReturnCode    = "-1";
                ReturnMessage = "错误报文格式(-4)!" + MessageName;
                Error_Resp("0", MessageName);
                return;
            }
            //检测客户端的有效性
            sql = dt_a319.Rows[0]["REQSQL"].ToString();

            if (sql.Length > 10)
            {
                sql = sql.Replace("[CLIENTIP]", clientip);
                DataTable dt_temp = new DataTable();
                dt_temp = Fun.getDtBySql(sql);
                if (dt_temp.Rows.Count <= 0)
                {
                    ReturnCode    = "-1";
                    ReturnMessage = "错误的客户端地址!" + MessageName;
                    Error_Resp("0", MessageName);
                    return;
                }
            }
            sql = "Select s_a31902 .nextval as c from dual";
            DataTable dt = new DataTable();
            dt = Fun.getDtBySql(sql);
            if (dt.Rows.Count <= 0)
            {
                ReturnCode    = "-1";
                ReturnMessage = "获取日志编码失败!" + MessageName;
                Error_Resp("0", MessageName);
                return;
            }
            log_key = dt.Rows[0][0].ToString();

            //开始写日志
            OracleParameter[] parmeters =
            {
                new OracleParameter("Messagename_", OracleType.NVarChar, 200),
                new OracleParameter("A31902_Line_", OracleType.NVarChar, 200),
                new OracleParameter("User_Id_",     OracleType.NVarChar, 200),
                new OracleParameter("Requestxml_",  OracleType.Clob)
            };
            parmeters[0].Direction = ParameterDirection.Input;
            parmeters[1].Direction = ParameterDirection.Input;
            parmeters[2].Direction = ParameterDirection.Input;

            parmeters[0].Value = MessageName;
            parmeters[1].Value = log_key;
            parmeters[2].Value = clientip;
            parmeters[3].Value = RequestXml;
            //写日志
            int li_db = 0;
            Fun.db.db_oracle.BeginTransaction();
            try
            {
                li_db = Fun.db.db_oracle.ExecuteNonQuery("Pkg_a319_api.Save_Xml_", parmeters);     //db.ExecuteNonQuery(str_sql, CommandType.Text);
                if (li_db < 0)
                {
                    Fun.db.db_oracle.Rollback();
                    ReturnCode    = "-1";
                    ReturnMessage = "记录日志失败!" + MessageName;
                    Error_Resp("0", MessageName);
                    return;
                }
            }
            catch (Exception ex)
            {
                Fun.db.db_oracle.Rollback();
                ReturnCode    = "-1";
                ReturnMessage = BaseFun.GetOracleMsg(ex.Message);
                Error_Resp("0", MessageName);
                return;
            }
            Fun.db.db_oracle.Commit();

            //处理报文

            OracleParameter[] parm =
            {
                new OracleParameter("A31902_Line_", OracleType.NVarChar, 200)
            };
            parm[0].Direction = ParameterDirection.Input;
            parm[0].Value     = log_key;
            //写日志
            Fun.db.db_oracle.BeginTransaction();
            try
            {
                li_db = Fun.db.db_oracle.ExecuteNonQuery("Pkg_a319_api.Req_xml_", parm);     //db.ExecuteNonQuery(str_sql, CommandType.Text);
                if (li_db < 0)
                {
                    Fun.db.db_oracle.Rollback();
                    ReturnCode    = "-1";
                    ReturnMessage = "处理失败!" + MessageName;
                    Error_Resp("0", MessageName);
                    return;
                }
            }
            catch (Exception ex)
            {
                Fun.db.db_oracle.Rollback();
                ReturnCode    = "-1";
                ReturnMessage = BaseFun.GetOracleMsg(ex.Message);
                Error_Resp("0", MessageName);
                return;
            }
            Fun.db.db_oracle.Commit();
            // responsexml = parmeters[1].Value.ToString();
            try
            {
                DataTable dt_send = new DataTable();
                dt_send = Fun.getDtBySql("select t.sendxml from a31902 t where line_no=" + log_key);
                Response.Write(dt_send.Rows[0][0].ToString());
            }
            catch
            {
                ReturnCode    = "-1";
                ReturnMessage = "处理失败!" + MessageName;
                Error_Resp("0", MessageName);
            }
        }
        catch
        {
            ReturnCode    = "-1";
            ReturnMessage = "处理失败!" + MessageName;
            Error_Resp("0", MessageName);
        }
    }