Ejemplo n.º 1
0
        /// <summary>
        /// 測試運算式是否成立,能否被用來做 SQL Injection
        /// </summary>
        public bool IsSQLInjectionExpr(string expr)
        {
            bool result = false;

            using (ArticlePublisherDataAccess artPubDao = new ArticlePublisherDataAccess())
            {
                result   = artPubDao.IsSQLInjectionExpr(expr);
                dbErrMsg = artPubDao.GetErrMsg();
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 取得後台網頁所屬的作業代碼
        /// </summary>
        public int GetOpIdOfPage(Guid articleId)
        {
            if (opIdOfPage < 1)
            {
                bool   gotOpId      = false;
                Guid   curArticleId = articleId;
                Guid   curParentId  = Guid.Empty;
                int    curArticleLevelNo;
                string linkUrl = "";
                bool   isRoot  = false;

                // get article info
                ArticleForBackend article = null;

                using (ArticlePublisherDataAccess artPubDao = new ArticlePublisherDataAccess())
                {
                    article = artPubDao.GetArticleDataForBackend(curArticleId);
                    string dbErrMsg = artPubDao.GetErrMsg();
                }

                if (article != null)
                {
                    if (!article.ParentId.HasValue)
                    {
                        isRoot = true;
                    }
                    else
                    {
                        curParentId = article.ParentId.Value;
                    }

                    curArticleLevelNo = article.ArticleLevelNo.Value;
                }

                if (isRoot)
                {
                    opIdOfPage = base.GetOpIdOfPage();
                    return(opIdOfPage);
                }

                do
                {
                    // get opId by LinkUrl
                    linkUrl = string.Format("Article-Node.aspx?artid={0}", curArticleId);
                    OperationOpInfo opInfo = null;

                    using (EmployeeAuthorityDataAccess empAuthDao = new EmployeeAuthorityDataAccess())
                    {
                        opInfo = empAuthDao.GetOperationOpInfoByLinkUrl(linkUrl);
                        string dbErrMsg = empAuthDao.GetErrMsg();
                    }

                    if (opInfo != null)
                    {
                        opIdOfPage = opInfo.OpId;
                        gotOpId    = true;
                    }
                    else
                    {
                        if (curParentId == Guid.Empty)
                        {
                            // parent is root
                            break;
                        }

                        // get parent info
                        ArticleForBackend parent = null;

                        using (ArticlePublisherDataAccess artPubDao = new ArticlePublisherDataAccess())
                        {
                            parent = artPubDao.GetArticleDataForBackend(curParentId);
                            string dbErrMsg = artPubDao.GetErrMsg();
                        }

                        if (parent == null)
                        {
                            logger.Error(string.Format("can not get article data of {0}", curParentId));
                            break;
                        }

                        // move to parent level
                        curArticleId      = curParentId;
                        curParentId       = parent.ParentId.Value;
                        curArticleLevelNo = parent.ArticleLevelNo.Value;
                    }
                } while (!gotOpId);

                if (!gotOpId)
                {
                    opIdOfPage = base.GetOpIdOfPage();
                }
            }

            return(opIdOfPage);
        }