Asp.net 中使用BasePage.cs的例子

taogchan發表於2014-01-08

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using NetCMS.Config;
using NetCMS.Model;
using NetCMS.Content;

namespace NetCMS.Web.UI
{
    public class BasePage : System.Web.UI.Page
    {
        protected readonly int PAGESIZE = Config.UIConfig.GetPageSize();
        protected internal UserLogin _UserLogin;
        protected internal string CopyRight = "(c)2008 AspxCMS Inc. By " + NetCMS.Config.verConfig.Productversion + "";
        protected void AddStyleSheet(Page page, string cssPath)
        {
            HtmlLink link = new HtmlLink();
            link.Href = cssPath;
            link.Attributes["rel"] = "stylesheet";
            link.Attributes["type"] = "text/css";
        }
        public BasePage()
        {
            _UserLogin = new UserLogin();
        }
        protected void PageRight(string RightMsg, string Url)
        {
            PageRight(RightMsg, Url, false);
        }

        protected void PageRight(string ErrMsg, string Url, bool RetrunUrl)
        {
            WebHint.ShowRight(ErrMsg, Url, RetrunUrl);
        }

        protected void PageError(string ErrMsg, string Url)
        {
            PageError(ErrMsg, Url, false);
        }

        protected void PageError(string ErrMsg, string Url, bool RetrunUrl)
        {
            WebHint.ShowError(ErrMsg, Url, RetrunUrl);
        }

        /// 
        /// 退出
        /// 

        protected virtual void Logout()
        {
            Context.Session.Remove("SITEINFO");
        }
        /// 
        /// 執行一個JS語句
        /// 

        /// 要執行的語句
        protected void ExecuteJs(string sentence)
        {
            Context.Response.Write("
        }
        /// 
        /// 檢查使用者資訊會話是否超時
        /// 

        /// 
        protected bool Validate_Session()
        {
            return !NetCMS.Global.Current.IsTimeout();
        }
        protected void LoginResultShow(EnumLoginState state)
        {
            LoginResultShow(state, false);
        }
        protected void LoginResultShow(EnumLoginState state, bool isAjax)
        {
            string ErrorMsg = string.Empty;
            int isAdminReturn = 0;
            switch (state)
            {
                case EnumLoginState.Err_IPLimited:
                    ErrorMsg = "您IP[" + NetCMS.Common.Public.getUserIP() + "]被限制,不能登陸!";
                    isAdminReturn = 2;
                    break;
                case EnumLoginState.Err_Locked:
                    ErrorMsg = "您已經被鎖定!";
                    isAdminReturn = 2;
                    break;
                case EnumLoginState.Err_UnEmail:
                    ErrorMsg = "您還沒通過電子郵件啟用,不能登陸本系統!";
                    isAdminReturn = 0;
                    break;
                case EnumLoginState.Err_AdminTimeOut:
                    ErrorMsg = "會話過期,請重新登陸";
                    isAdminReturn = 1;
                    break;
                case EnumLoginState.Err_UserTimeOut:
                    ErrorMsg = "會話過期,請重新登陸";
                    isAdminReturn = 0;
                    break;
                case EnumLoginState.Err_UnMobile:
                    ErrorMsg = "您還沒通過手機驗證,不能登陸本系統!
  • 點選此處驗證您的手機
  • ";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_UnCert:
                        ErrorMsg = "
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_NoAuthority:
                        ErrorMsg = "您沒有此項的操作許可權!";
                        isAdminReturn = 1;
                        break;
                    case EnumLoginState.Err_AdminLocked:
                        ErrorMsg = "您已被鎖定";
                        isAdminReturn = 1;
                        break;
                    case EnumLoginState.Err_DbException:
                        ErrorMsg = "系統錯誤。
  • 出錯原因:
  • 與資料庫伺服器的通訊失敗。
  • 資料庫連線字串不正確。
  • 資料庫發生異常。
  • ";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_UserNumInexistent:
                        ErrorMsg = "使用者不存在";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_AdminNumInexistent:
                        ErrorMsg = "許可權不足!";
                        isAdminReturn = 1;
                        break;
                    case EnumLoginState.Err_DurativeLogError:
                        ErrorMsg = "連續錯誤登陸,您已經被鎖定,請" + _UserLogin.GetLoginSpan() + "分鐘後再登入!";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_AdminNameOrPwdError:
                        ErrorMsg = "使用者名稱不存在或者密碼錯誤";
                        isAdminReturn = 1;
                        break;
                    case EnumLoginState.Err_UserNameOrPwdError:
                        ErrorMsg = "使用者名稱不存在或者密碼錯誤";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_GroupExpire:
                        ErrorMsg = "您的帳號已過期";
                        isAdminReturn = 0;
                        break;
                    case EnumLoginState.Err_NotAdmin:
                        ErrorMsg = "抱歉,您不是管理員。您的操作已經記錄!
  • 您的IP:[" + NetCMS.Common.Public.getUserIP() + "]已被記錄
  • ";
                        isAdminReturn = 1;
                        break;
                    case EnumLoginState.Succeed:
                        return;
                    default:
                        ErrorMsg = "異常錯誤:" + state.ToString();
                        isAdminReturn = 0;
                        break;
                }
                string dimm = NetCMS.Config.UIConfig.dirDumm.Trim();
                if (dimm != string.Empty)
                {
                    dimm = "/" + dimm;
                }
                string ReturnUrl = string.Empty;
                switch (isAdminReturn)
                {
                    case 0:
                        ReturnUrl = dimm + "/" + NetCMS.Config.UIConfig.dirUser + "/login.aspx";
                        break;
                    case 1:
                        if (state == EnumLoginState.Err_NoAuthority)
                        {
                            ReturnUrl = dimm + "/" + NetCMS.Config.UIConfig.dirMana + "/main.aspx";
                        }
                        else
                        {
                            ReturnUrl = dimm + "/" + NetCMS.Config.UIConfig.dirMana + "/login.aspx";
                        }
                        break;
                    default:
                        ReturnUrl = dimm + "/";
                        break;
                }
                if (isAjax)
                    throw new Exception(ErrorMsg);
                else
                    PageError(ErrorMsg, ReturnUrl, true);
            }
            protected void CheckUserLogin()
            {
                if (!Validate_Session())
                    LoginResultShow(EnumLoginState.Err_UserTimeOut);
                else
                    LoginResultShow(CheckUserLogin(NetCMS.Global.Current.UserNum, false));
            }
            protected void CheckUserLoginCert()
            {
                if (!Validate_Session())
                    LoginResultShow(EnumLoginState.Err_UserTimeOut);
                else
                    LoginResultShow(CheckUserLogin(NetCMS.Global.Current.UserNum, true));
            }
            protected void CheckAdminLogin()
            {
                if (!Validate_Session())
                    LoginResultShow(EnumLoginState.Err_AdminTimeOut);
                else
                    LoginResultShow(CheckUserLogin(NetCMS.Global.Current.UserNum, true));
            }
            /// 
            /// 檢查普通會員登入狀態
            /// 

            /// 
            /// 
            /// 
            /// 
            private EnumLoginState CheckUserLogin(string UserNum, bool IsCert)
            {
                return _UserLogin.CheckUserLogin(UserNum, IsCert);
            }
            /// 
            /// 檢查管理員登入狀態
            /// 

            /// 
            /// 
            /// 
            private EnumLoginState CheckAdminLogin(string UserNum)
            {
                return _UserLogin.CheckAdminLogin(UserNum);
            }
           /// 
           /// 使用者登入
           /// 

           /// 
           /// 
           /// 
           /// 
           /// 
            protected EnumLoginState Login(string UserName,string Password,out GlobalUserInfo info, bool IsAdmin)
            {
                if (IsAdmin)
                    return _UserLogin.AdminLogin(UserName, Password, out info);
                else
                    return _UserLogin.PersonLogin(UserName, Password, out info);
                    
            }
           /// 
            /// 個人使用者登入
           /// 

           /// 
           /// 
           /// 
           /// 
            protected EnumLoginState Login(string UserName, string Password, out GlobalUserInfo info)
            {
                    return _UserLogin.PersonLogin(UserName, Password, out info);
            }
            /// 
            /// 個人使用者登入
            /// 

            /// 
            /// 
            protected void Login(string UserName, string Password)
            {
                GlobalUserInfo info;
                EnumLoginState state = _UserLogin.PersonLogin(UserName, Password, out info);
                if (state == EnumLoginState.Succeed)
                    Global.Current.Set(info);
                else
                    LoginResultShow(state);
            }

            /// 
            /// 個人使用者登入
            /// 

            /// 
            /// 
            protected void AjaxLogin(string UserName, string Password)
            {
                GlobalUserInfo info;
                EnumLoginState state = _UserLogin.PersonLogin(UserName, Password, out info);
                if (state == EnumLoginState.Succeed)
                    Global.Current.Set(info);
                else
                    LoginResultShow(state, true);
            }

        }
    }

     

     

     


    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-1068459/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章