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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22392018/viewspace-1068459/