1

我相信对于典型的 MVC Web 应用程序,路由器/调度程序例程用于主要根据用户在 url 中请求的区域来决定加载哪个控制器。

但是,除了检查 url 查询字符串之外,我还喜欢使用调度程序检查用户当前是否登录,以决定加载哪个控制器。例如,如果他们登录并请求登录页面,调度员将加载他们的帐户。

但这是一个相当不标准的设计吗?它会以任何方式违反 MVC 吗?我只问这个周末我读过的示例在调度程序例程之前没有执行任何重大计算,并且通常检查用户是否按控制器登录,然后在必要时重定向。

但是对我来说,如果您可以首先加载帐户控制器,那么将登录用户从登录区域重定向到帐户区域似乎很奇怪?

我希望我已经很好地解释了我的惊愕,但是任何人都可以提供一些关于他们如何处理登录用户和类似会话数据的细节吗?

4

2 回答 2

1

这似乎是一个公平的要求,并且可以使用拦截过滤器来实现。可以检查请求标头并将其标记为尝试登录,或标记为恶意尝试。或者,调度程序可以将其委托给不同的控制器,该控制器可以执行相同的操作并适当地重定向请求。MVC 完全是关于应用程序中的智能分离。这种情况属于健全性检查(技术要求而不是业务要求)。

于 2010-04-11T19:32:40.273 回答
1

我正在使用的当前 MVC 框架具有预分派和后分派功能。我通常将登录检查放在预调度过程中,而不是直接将它放在调度程序中。此外,身份验证类可能会为您完成这项工作。

于 2010-04-11T19:38:41.313 回答