Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 调度程序前的逻辑+;控制器?_Model View Controller_Dispatcher_Application Design_User Management - Fatal编程技术网

Model view controller 调度程序前的逻辑+;控制器?

Model view controller 调度程序前的逻辑+;控制器?,model-view-controller,dispatcher,application-design,user-management,Model View Controller,Dispatcher,Application Design,User Management,我相信对于典型的MVC web应用程序,路由器/调度程序例程主要根据用户在url中请求的区域来决定加载哪个控制器 但是,除了检查url查询字符串外,我还喜欢使用dispatcher检查用户当前是否登录,以确定加载了哪个控制器。例如,如果他们登录并请求登录页面,调度器将加载他们的帐户 但这是一个相当非标准的设计吗?它会以任何方式违反MVC吗?我只是问,因为我在本周末通读的示例在dispatcher例程之前没有执行主要的计算,通常会检查用户是否已按控制器登录,然后在必要时重定向 但对我来说,如果你能

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

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

但这是一个相当非标准的设计吗?它会以任何方式违反MVC吗?我只是问,因为我在本周末通读的示例在dispatcher例程之前没有执行主要的计算,通常会检查用户是否已按控制器登录,然后在必要时重定向

但对我来说,如果你能在第一时间加载帐户控制器,那么将登录用户从登录区域重定向到帐户区域似乎很奇怪


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

这似乎是一个公平的要求,可以使用拦截过滤器来实现。可以检查请求头并将其标记为尝试登录,或将其标记为恶意尝试。或者,调度器可以将其委托给另一个控制器,该控制器也可以这样做,并适当地重定向请求。MVC完全是关于应用程序中的智能隔离。此案例属于健全性检查(技术要求而非业务要求)。

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

您好,我曾寻找过一些身份验证类,但知道其他开发人员使用类似的系统是非常有用的。谢谢这是我的荣幸。很高兴这对你有帮助,谢谢你的详细回复。很高兴知道我没有太多违反MVC;-)谢谢