MVC3交易计数器

时间:2012-03-29 15:21:14

标签: asp.net-mvc-3

我想计算从数据库(SQL Server)检索某些报告的事务数。我使用EF4.1进行数据库交互,使用MVC3进行客户端访问。

任何人都可以建议最好的方式来做和放置(在控制器或重置服务等)。

我想将用户限制为每小时最多100笔交易。在此限制之后,我将锁定用户并注销。在此先感谢!!

2 个答案:

答案 0 :(得分:1)

我可能会在ActionFilterAttributeMvcApplication方法中查看可以全局(跨所有控制器)应用的RegisterGlobalFilters。类似的东西:

public class FilterTrafficAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // Log and track visitor count for the hour here, and decide if they
        // should proceed on or not.
        // You can also change the ActionResult of the request by altering the
        // filterContext.Result.
    }
}

然后在MvcApplication

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandlerErrorAttribute());

    // add this line:
    filters.Add(new FilterTrafficAttribute());
}

然后你确保它适用于所有通话,并具有很多处理能力。您可能会对ActionFilterAttribute

感兴趣

答案 1 :(得分:1)

这显然是业务逻辑,因此“行动”(决策)需要在您的业务逻辑层中。

在数据库中,保留每天消耗配额的表,并在每次用户执行计数操作(例如检索特定报告或写入数据库)时更新该表。也就是说,您的业务逻辑包含更新每个此类操作的消耗配额计数器的说明。

在您的业务层中添加验证逻辑,用于读取用户的已消耗配额,并且仅在尚未达到该用户的每日配额时验证(即允许)。

如有必要,每天都会清理配额,但您可能希望将其保留用于会计目的。