Asp.net 中使用BasePage.cs的例子
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 = "抱歉,您不是管理員。您的操作已經記錄!
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET MVC 反射例子ASP.NETMVC反射
- Uploadify(JQuery上傳外掛)在asp.net中使用例子jQueryASP.NET
- jwt-在asp.net core中的使用jwtJWTASP.NET
- react-refetch的使用小例子React
- scrapy 使用的基本流程和例子
- PHP中ZendCache用法的小例子PHP
- CSS的偽元素使用例子之一CSS
- 淺談ASP.NET Core中IOC與DI的理解和使用ASP.NET
- 使用 Angular Transfer State 的一個具體例子Angular
- RxJS CombineLatest operator 的一個具體使用例子JS
- Angular Reactive Form 的一個具體使用例子AngularReactORM
- spring-securty-oauth2使用例子SpringOAuth
- Unity3d FingerGestures 使用 例子Unity3D
- 有關mysql中ROW_COUNT()的小例子MySql
- 小例子 理解 Laravel 中的 控制反轉模式Laravel模式
- Asp.net 使用FluentSchedulerASP.NET
- popmenu的例子
- 聊聊ASP.NET Core中的配置ASP.NET
- ASP.NET Core 中的快取ASP.NET快取
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- Spring Boot 中使用Caffeine快取的簡單例子Spring Boot快取單例
- Rust 程式設計中使用 leveldb 的簡單例子Rust程式設計單例
- 使用javap分析Java位元組碼的一個例子Java
- flex與bison的結合使用(計算器例子)Flex
- 一個簡單的例子教會您使用javapJava
- Linux中顯示記憶體和CPU使用率最高的程式的SHELL指令碼例子Linux記憶體指令碼
- SAP Spartacus SSR 中的 shimming 實現的一個例子
- android中activity可以響應外部的action的例子(可以Android
- Asp.net中使用Server.HtmlDecode(string str)的使用ASP.NETServerHTML
- [20231226]vim Align外掛使用例子.txt
- 正則中關於環視(lookaround)的小例子
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- Rxjs debounce 運算子在 SAP Spartacus 函式節流中的一個實際使用例子JS函式
- ASP.NET Core 中的依賴注入ASP.NET依賴注入
- ASP.NET Core 中的管道機制ASP.NET
- Media Query 在 CSS 中使用的一個具體例子CSS
- docker中搭建canal監聽mysql例子DockerMySql
- Python中threading的join和setDaemon的區別及用法[例子]Pythonthread
- ASP.NET MVC下使用AngularJs語言(七):Cookie的使用ASP.NETMVCAngularJSCookie