Asp.net mvc 何时检查是否应允许帐户使用web应用程序?

Asp.net mvc 何时检查是否应允许帐户使用web应用程序?,asp.net-mvc,Asp.net Mvc,所以我有一个网络应用程序,理论上说,有一天它可能会成为一个付费应用程序——如果有人真的觉得它有用并且值得的话 我有处理付款的所有逻辑,检查账户是否过期等。所有这些都存储在RavenDB中(实际上是RavenHQ)——这与手头的问题无关 现在,我正试图遵循最佳实践,我希望我的应用程序性能良好,即不进行微优化,但我希望以一种能够随负载相对良好地扩展的方式来做事情(如果它起飞,它将被托管-我希望不必支付超过严格必要的服务器费用) 我的应用程序使用了接近默认登录/帐户模式的东西。用户通过https使用表

所以我有一个网络应用程序,理论上说,有一天它可能会成为一个付费应用程序——如果有人真的觉得它有用并且值得的话

我有处理付款的所有逻辑,检查账户是否过期等。所有这些都存储在RavenDB中(实际上是RavenHQ)——这与手头的问题无关

现在,我正试图遵循最佳实践,我希望我的应用程序性能良好,即不进行微优化,但我希望以一种能够随负载相对良好地扩展的方式来做事情(如果它起飞,它将被托管-我希望不必支付超过严格必要的服务器费用)

我的应用程序使用了接近默认登录/帐户模式的东西。用户通过https使用表单身份验证安全登录

我应该在什么时候检查用户是否被允许使用web应用程序(关于支付状态等,这是一个域模型问题)?考虑这将意味着从RaveNB后端请求单个文档,并检查当前支付周期是否过期。 我应该:

  • 每次用户登录时进行检查,使他们在x小时以上无法“记住我”,其中x是一个相对较小的数字

  • 检查一些用户相对经常访问的中央控制器操作-如果这些操作不可用,应用程序将受到严格限制

  • 做一个全局操作过滤器,检查每个请求,然后在内容过期时重定向到“Pay Noooow!”页面

  • 另一种选择

RavenDB做了聪明的缓存,所以我不认为对这个文档的请求会破坏性能,但是如果应用程序真的启动了(不太可能,但可以想象),每个http请求额外的数据库请求可能会导致Ayende追捕我并无情地打我。我不想那样

在我看来,这是其他人会思考和解决的问题,所以我在问——什么是正确的处理方法


谢谢你的见解

严格来说,我不认为这是一个框架问题,它更像是您希望您的站点如何运行,然后使用框架来支持它。一般来说,除非必要,否则您希望使站点可用且不受太多限制,例如,在没有任何限制的情况下浏览站点,但签出操作应非常安全

你好,谢谢你的回复。我理解并同意你所说的,然而,我所追求的(我可能对此还不够清楚)基本上是如何(从技术上)在MVC中实现检查。该应用程序将是一个付费应用程序,当付款到期时,我需要提醒用户,除非他们付款,否则他们不能再使用该应用程序。当然,我不想成为一个a$$,但我需要某种方法来拒绝用户对不再允许使用的资源的访问。开始倾向于全局属性和会话变量methinks。您可以对操作使用自定义属性,也可以使用基于角色的安全属性。e、 g.:[Role=“PayingCustomer”](不是确切的属性),您可以通过转到后端来检查客户是否仍然是付费客户。