在Controllers里建一个ControllerBase,让其它Controller都继承它即可
public
class ControllerBase : Controller{
protected bool _needPermission = true; public ControllerBase():
base(){
}
protected override void ExecuteCore(){
if (!CheckLogon()){
var ar = RedirectToAction("LogOn", "Account", new System.Web.Routing.RouteValueDictionary(new { returnUrl = Request.Url.PathAndQuery }));ar.ExecuteResult(
this.ControllerContext);}
else{
base.ExecuteCore();}
}
/// <summary> /// Check user logon state /// </summary> /// <returns></returns> private bool CheckLogon(){
if (_needPermission && System.Web.HttpContext.Current.Session[Common.Definitions.SessionKeys.CurrentUser] == null)// && !AutoLogon()){
return false;}
else{
return true;}
}
/// <summary> /// Auto logon by Cookies /// </summary> /// <returns></returns> private bool AutoLogon(){
bool passed = false; HttpCookie keepLogonCookie = Request.Cookies[Common.Definitions.CookieKeys.KeepUserLogon]; HttpCookie savedUserIDCookie = Request.Cookies[Common.Definitions.CookieKeys.SavedUserID]; int userID; if (keepLogonCookie != null && keepLogonCookie.Value == "1" && savedUserIDCookie!=null && int.TryParse(savedUserIDCookie.Value,out userID)){
Business.
IPersonnelProvider provider = Business.PersonnalProviderAdapter.GetEmployeeProvider();Data.
User user = provider.GetUserInfo(userID); if (user != null){
//Auto LogonSession[GSC.Common.Definitions.
SessionKeys.CurrentUser] = user;Session[GSC.Common.Definitions.
SessionKeys.CurrentUserPermission] = provider.GetUserToPermission(user.UserID);passed =
true;}
}
return passed;}
}