0

在我的 web 应用程序中,会话用于业务层,而此业务层(DLL)用于移动应用程序。我可以使用静态类和方法从业务层删除此会话吗?

4

3 回答 3

1

将数据存储在静态成员而不是会话中会产生非常不同的结果。Web 应用程序中的会话通过会话 cookie 与远程用户绑定。换句话说,每个用户(使用不同的 cookie)都会有一个单独的会话。另一方面,类的静态成员对于 Web 应用程序的所有远程用户都是相同的。如果您考虑网络农场、网络花园和应用程序域,情况会变得更加复杂,但一般原则是相同的。

如果数据对每个用户都是唯一的,那么会话(或数据库等其他地方)是存储它的正确位置。如果所有用户的数据都相同,那么使用静态成员可能没问题,但当两个或更多用户尝试同时更新数据时要注意问题。

于 2013-10-11T14:31:03.293 回答
0

if you use static, users will override each others values. This is why Session State was created in the first place (in addition to caching etc....) as its isolated just for that specific user. using static in web is a bad bad idea especially when dealing with more than 1 user (the point on web app is to deal with multiple users at the same time too!)

also you say you are using Session in business logic? That doesn't sound right to me already... business layer should be completely separate and should not have access to Session since session is a web layer only accessibility. Seems like your architecture is also incorrect.

于 2013-10-11T14:33:36.950 回答
0

最好将会话中所需的相关字段注入业务层。

于 2013-10-11T10:03:29.727 回答