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反射
- at new 的使用例子
- Uploadify(JQuery上傳外掛)在asp.net中使用例子jQueryASP.NET
- 聊聊asp.net中Web Api的使用ASP.NETWebAPI
- ASP.NET 2.0中XSLT的使用ASP.NET
- C# httpcookie asp.net中cookie的使用C#HTTPCookieASP.NET
- 【轉】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子ASP.NETMVC框架MVVM模式JS
- OpenCv 中Snake程式的例子OpenCV
- asp.net連線Access資料庫例子ASP.NET資料庫
- 巢狀表在表定義中的使用:一個例子巢狀
- 在asp.net handler 中 使用 sessionASP.NETSession
- jwt-在asp.net core中的使用jwtJWTASP.NET
- PHP中ZendCache用法的小例子PHP
- websocket使用小例子Web
- Grails 使用MySQL例子AIMySql
- scrapy 使用的基本流程和例子
- 在 Pylons 中使用 MongoDB 的例子MongoDB
- ASP.NET MVC中簡單使用AutofacASP.NETMVC
- Asp.net MVC中ViewData與ViewBag的使用方法ASP.NETMVCView
- 【Microbar 】Asp.net 類中使用中括號([......])的作用ASP.NET
- CSS的偽元素使用例子之一CSS
- react-refetch的使用小例子React
- 管道命令grep , egrep的使用例子 -v
- Asp.net中防止使用者多次登入的方法ASP.NET
- 【永春】Asp.Net中虛擬檔案系統的使用ASP.NET
- sql loader使用例子SQL
- Asp.Net中ajax+aspx使用詳解ASP.NET
- Asp.Net中ajax+ashx使用詳解ASP.NET
- 引用的例子 C C++ 中區別C++
- Android中Service的一個Demo例子Android
- codesoft在delphi,C#中的例子C#
- asp.net TreeView 的使用ASP.NETView
- 淺談ASP.NET Core中IOC與DI的理解和使用ASP.NET
- Asp.net中UpdatePanel內FileUpload的正確使用方法ASP.NET
- linux使用fdisk新增分割槽的例子Linux
- SQL Server遊標使用例子SQLServer
- oracle expdp和impdp使用例子Oracle
- google map aip使用例子程式GoAI