我有一个关于在将应用程序移植到 MVC 时处理用户登录的问题:
在“旧的”WebForm 时代,开发人员只需使用 SessionState 对象将用户设置为已登录,例如,只需将 userobject 放入 SessionState(并且此 userobject 包含简单的属性,例如 name/lastlogon/etc)。
这些东西对我们来说效果很好,我已经看到很多应用程序都是这样做的
是的,我知道有这个 MembershipProvide-thingy,但我从未使用过它
现在,在 MVC 中,每个人都告诉我“为此使用 SessionStat 很糟糕”和“以这种方式构建的应用程序在设计上存在缺陷”以及“存在大量安全风险”等等。
我使用了这种方法,因为它对应用程序非常可靠,实现起来很简单,并且涵盖了我们需要的所有东西。
(当然,回收网络工作者进程和清空会话是有问题的——但在我们的例子中这不是问题,因为该应用程序在专用机器上为每个国家/地区运行)
我已经阅读了教程,告诉我将这些东西放在数据库中,然后-注意-根据每个请求向数据库发出请求以检查用户是否已登录?但是:在任何情况下,这是一种可行的方式,因为我想将数据库请求保持在最低限度。
所以我的问题是:
A)在新的 MVC 应用程序中使用这种方式有什么问题?
B)在新建的 MVC 应用程序中处理这种情况的最佳方法是什么?
关于数据库中会话的想法:我不会这样做,而是设置一个额外的服务,比如通过网络获取查询的“会话管理器”,但是这样简单的请求不应该发送到数据库 - 是这不是个好主意吗?
任何想法,提示/等。非常感谢,因为这种情况真的让我很困惑:-X