Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        public static ScicLoginInfo GetScicLoginInfo()
        {
            if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" && HttpContext.Current.User.Identity.IsAuthenticated)
            {
                //因为cookie是全网站公用的,故首先看cookie
                ScicLoginInfo loginInfo       = new ScicLoginInfo();
                HttpCookie    scicLoginCookie = HttpContext.Current.Request.Cookies[CookieNameOfScicLoginInfo];
                if (!scicLoginCookie.IsEmpty())
                {
                    loginInfo.UserID    = scicLoginCookie[KeyNameOfUserID].ToInt32();
                    loginInfo.LoginName = HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfLoginName]);
                    loginInfo.UserName  = HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfUserName]);
                    loginInfo.OrgID     = scicLoginCookie[KeyNameOfOrgID];
                    //张鎏  添加
                    loginInfo.OrgUnitName = HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfOrgUnitName]);
                    loginInfo.UserType    = (BasicUserType)Enum.Parse(typeof(BasicUserType), HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfUserType]));
                    loginInfo.LoginType   = (ScicLoginType)Enum.Parse(typeof(ScicLoginType), HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfLoginType]));
                    string[] arraySelectableLoginTypes = HttpUtility.UrlDecode(scicLoginCookie[KeyNameOfSelectableLoginTypes]).Split(new char[] { ',' });
                    loginInfo.SelectableLoginTypes = new List <ScicLoginType>();
                    foreach (string strLoginType in arraySelectableLoginTypes)
                    {
                        loginInfo.SelectableLoginTypes.Add((ScicLoginType)Enum.Parse(typeof(ScicLoginType), strLoginType));
                    }

                    return(loginInfo);
                }
            }
            else if (!HttpContext.Current.Session[SessionNameOfScicLoginInfo].IsEmpty()) //如果没有用cookie,则从session中查找
            {
                return((ScicLoginInfo)HttpContext.Current.Session[SessionNameOfScicLoginInfo]);
            }

            return(null);    //"未取到登录信息
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        public static void SetScicLoginInfo(ScicLoginInfo loginInfo)
        {
            if (GetAuthenticationMode() == "Forms")
            {
                HttpCookie scicLoginCookie = new HttpCookie(CookieNameOfScicLoginInfo);
                scicLoginCookie.Expires             = DateTime.Now.AddDays(1); //设置Cookie超时时间
                scicLoginCookie[KeyNameOfUserID]    = loginInfo.UserID.ToString();
                scicLoginCookie[KeyNameOfLoginName] = loginInfo.LoginName;
                scicLoginCookie[KeyNameOfUserName]  = HttpUtility.UrlEncode(loginInfo.UserName);//因为cookie里中文字符在浏览器和web server间直接传递时,会变成乱码,故需要Encode一下
                scicLoginCookie[KeyNameOfOrgID]     = loginInfo.OrgID;
                scicLoginCookie[KeyNameOfUserType]  = HttpUtility.UrlEncode(loginInfo.UserType.ToString());
                scicLoginCookie[KeyNameOfLoginType] = HttpUtility.UrlEncode(loginInfo.LoginType.ToString());
                string strSelectableLogintTypes = loginInfo.SelectableLoginTypes[0].ToString();
                for (int i = 1; i < loginInfo.SelectableLoginTypes.Count; i++)
                {
                    strSelectableLogintTypes += "," + loginInfo.SelectableLoginTypes[i].ToString();
                }
                scicLoginCookie[KeyNameOfSelectableLoginTypes] = HttpUtility.UrlEncode(strSelectableLogintTypes);

                //张鎏  添加
                scicLoginCookie[KeyNameOfOrgUnitName] = HttpUtility.UrlEncode(loginInfo.OrgUnitName);
                HttpContext.Current.Response.AppendCookie(scicLoginCookie);
            }
            else
            {
                HttpContext.Current.Session[SessionNameOfScicLoginInfo] = loginInfo;
            }
        }
Exemple #3
0
        /// <summary>
        /// 初始化一个SCIC平台用户
        /// </summary>
        public static ResultOfInitScicLogin InitScicLogin(DBOperator dbOperator, int userID)
        {
            ResultOfInitScicLogin myResult = new ResultOfInitScicLogin();

            Bigdesk2010.Business.UserRightManager.IUserRightInfo ur = new Bigdesk2010.Business.UserRightManager.UserRightInfo(dbOperator, userID);
            if (ur.CountOfUserMatched < 1)
            {
                myResult.ResultCode = ResultCodeOfInitScicLogin.用户不存在;
                myResult.Message    = "用户不存在!";
                return(myResult);
            }
            else if (ur.CountOfUserMatched > 1)
            {
                myResult.ResultCode = ResultCodeOfInitScicLogin.用户重复;
                myResult.Message    = "用户重复,请与系统管理员联系!";
                return(myResult);
            }
            myResult.ResultCode = ResultCodeOfInitScicLogin.唯一用户;

            ScicLoginInfo workUser = new ScicLoginInfo();

            workUser.UserID      = ur.UserID;
            workUser.LoginName   = ur.LoginName;
            workUser.UserName    = ur.UserName;
            workUser.UserType    = ur.UserType;
            workUser.LoginType   = ScicLoginType.未定义;
            workUser.OrgID       = string.Empty;
            workUser.OrgUnitName = ur.OrgUnitName;

            List <ScicLoginType> selectableLoginTypes = new List <ScicLoginType>();
            string sql = string.Empty;
            SqlParameterCollection spc = dbOperator.CreateSqlParameterCollection();

            switch (workUser.UserType)
            {
            case BasicUserType.建设单位:
                sql = "select jsdwid from uepp_jsdw where userid = @UserID";
                spc.Add("@UserID", workUser.UserID);
                DataTable dtJsdw = dbOperator.ExeSqlForDataTable(sql, spc, "uepp_jsdw");
                if (dtJsdw.Rows.Count == 1)
                {
                    workUser.OrgID = dtJsdw.Rows[0]["jsdwid"].ToString();
                    selectableLoginTypes.Add(ScicLoginType.建设单位用户);
                }
                else if (dtJsdw.Rows.Count > 1)
                {
                    myResult.ResultCode = ResultCodeOfInitScicLogin.基础数据异常;
                    myResult.Message    = "建设单位表中用户编号(" + ur.UserID.ToString() + ")重复";
                    return(myResult);
                }
                else
                {
                    myResult.ResultCode = ResultCodeOfInitScicLogin.基础数据异常;
                    myResult.Message    = "建设单位表中用户编号(" + ur.UserID.ToString() + ")不存在";
                    return(myResult);
                }
                break;

            case BasicUserType.管理用户:
                selectableLoginTypes.Add(ScicLoginType.管理用户);
                break;

            case BasicUserType.经办人:
                selectableLoginTypes.Add(ScicLoginType.经办人);
                break;

            case BasicUserType.企业用户:
                sql = @"select b.* 
                            from uepp_qyjbxx a, uepp_qycsyw b
                            where a.userid = @UserID
                            and   a.qyid = b.qyid";
                spc.Add("@UserID", workUser.UserID);
                DataTable dtQyywlx = dbOperator.ExeSqlForDataTable(sql, spc, "uepp_qycsyw");
                if (dtQyywlx.Rows.Count > 0)
                {
                    workUser.OrgID = dtQyywlx.Rows[0]["qyid"].ToString();
                    foreach (DataRow dr in dtQyywlx.Rows)
                    {
                        QyYwlxCode localYwlx = (QyYwlxCode)Enum.Parse(typeof(QyYwlxCode), dr["csywlxid"].ToString());
                        switch (localYwlx)
                        {
                        case QyYwlxCode.建筑施工:
                        case QyYwlxCode.设计施工一体化:
                        case QyYwlxCode.园林绿化:
                            if (!selectableLoginTypes.Contains(ScicLoginType.施工企业用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.施工企业用户);
                            }
                            break;

                        case QyYwlxCode.工程监理:
                            if (!selectableLoginTypes.Contains(ScicLoginType.监理企业用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.监理企业用户);
                            }
                            break;

                        case QyYwlxCode.招标代理:
                            if (!selectableLoginTypes.Contains(ScicLoginType.代理机构用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.代理机构用户);
                            }
                            break;

                        case QyYwlxCode.工程勘察:
                            if (!selectableLoginTypes.Contains(ScicLoginType.勘察企业用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.勘察企业用户);
                            }
                            break;

                        case QyYwlxCode.工程设计:
                            if (!selectableLoginTypes.Contains(ScicLoginType.设计企业用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.设计企业用户);
                            }
                            break;

                        case QyYwlxCode.价咨询:
                            if (!selectableLoginTypes.Contains(ScicLoginType.价咨询用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.价咨询用户);
                            }
                            break;

                        case QyYwlxCode.工程检测:
                            if (!selectableLoginTypes.Contains(ScicLoginType.检测机构用户))
                            {
                                selectableLoginTypes.Add(ScicLoginType.检测机构用户);
                            }
                            break;
                        }
                    }
                }
                break;
            }

            workUser.SelectableLoginTypes = selectableLoginTypes;
            if (selectableLoginTypes.Count == 1)
            {
                workUser.LoginType = selectableLoginTypes[0];
            }

            myResult.WorkUser = workUser;
            return(myResult);
        }