Asp.net mvc 自定义筛选属性和自定义授权属性执行
我有一个控制器范围的过滤器属性,如下所示:Asp.net mvc 自定义筛选属性和自定义授权属性执行,asp.net-mvc,fluent-nhibernate,ninject,Asp.net Mvc,Fluent Nhibernate,Ninject,我有一个控制器范围的过滤器属性,如下所示: public class LoggingNHibernateSessionAttribute : ActionFilterAttribute { private readonly IActionExceptionHandler _actionExceptionHandler; private readonly IActionTransactionHelper _actionTransactionHelper;
public class LoggingNHibernateSessionAttribute : ActionFilterAttribute
{
private readonly IActionExceptionHandler _actionExceptionHandler;
private readonly IActionTransactionHelper _actionTransactionHelper;
public LoggingNHibernateSessionAttribute()
: this(
WebContainerManager.Get<IActionExceptionHandler>(),
WebContainerManager.Get<IActionTransactionHelper>())
{
}
public LoggingNHibernateSessionAttribute(
IActionExceptionHandler actionExceptionHandler,
IActionTransactionHelper actionTransactionHelper)
{
// _actionLogHelper = actionLogHelper;
_actionExceptionHandler = actionExceptionHandler;
_actionTransactionHelper = actionTransactionHelper;
}
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
// _actionLogHelper.LogEntry(actionContext.ActionDescriptor);
_actionTransactionHelper.BeginTransaction();
}
public override void OnActionExecuted(ActionExecutedContext actionExecutedContext)
{
_actionTransactionHelper.EndTransaction(actionExecutedContext);
_actionTransactionHelper.CloseSession();
//_actionExceptionHandler.HandleException(actionExecutedContext);
//_actionLogHelper.LogExit(actionExecutedContext.ActionContext.ActionDescriptor);
}
}
我还有一个自定义授权属性:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
}
这是一种用法:
[CustomAuthorize()]
public ActionResult Index(
int page = 1, int rows = 10)
{
}
第一次执行该操作时,LoggingHibernateSessionAttribute中的方法会运行,但当我刷新页面时,该操作仍在执行,此时仅CustomAuthorize中的方法会执行,LoggingHibernateSessionAttribute中的方法不会执行
你能帮我吗
[CustomAuthorize()]
public ActionResult Index(
int page = 1, int rows = 10)
{
}