构造函数不执行,求教!!!
qqm05 2013-06-08 03:13:03 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class myAuthorize : AuthorizeAttribute
{
private readonly bool _authorize;
private bool _isPermissionFail = false;
public myAuthorize() {
string test = "断点";//在这里设置断点,F5调试时,并未进入这一步
if (HttpContext.Current.User.Identity.Name != "")
{
_authorize = true;
}
else
{
_authorize = false;
}
}
public myAuthorize(string permission)
{
string test = "断点";//在这里设置断点,,F5调试时,并未进入这一步
if (HttpContext.Current.User.Identity.Name != "")
{
_authorize = PermissionManager.CheckUserHasPermision(HttpContext.Current.User.Identity.Name, permission);
if (_authorize == false)
{
_isPermissionFail = true;
}
}
else
{
_authorize = false;
}
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return _authorize;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
//F5调试发现,程序直接跳过构造函数,执行到这里了
base.OnAuthorization(filterContext);
if (filterContext.HttpContext.Response.StatusCode == 403)
{
filterContext.Result = new RedirectResult("/Admin/Home/PermissionError");
}
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (_isPermissionFail)
{
filterContext.HttpContext.Response.Redirect("/Admin/Home/PermissionError");
}
else
{
//base.HandleUnauthorizedRequest(filterContext);
filterContext.HttpContext.Response.RedirectToRoute(new {Area="Admin",Controller="Home",Action="Login" });
}
}
}
还望各位大侠不吝赐教!!!