gpt4 book ai didi

asp.net - 在 Web 项目之外使用 HTTPContext 的任何问题

转载 作者:行者123 更新时间:2023-12-02 20:45:42 24 4
gpt4 key购买 nike

我们有一个 Web 应用程序,可以在单独的项目中访问业务逻辑和数据访问。

按照其设计方式,键值永远不会传递到数据访问层或业务逻辑。相反,业务层有一个包含公共(public)只读属性的类,DAL 层通过该属性访问值。

业务逻辑层位于不同的项目中。 Web项目获取引用。业务逻辑层有这个类:Public NotInheritable Class clsUserProfile其中具有以下属性:

Public ReadOnly Property AgencyCode() As Integer

Get
If clsAppInfo.IsWebApplication Then
If (HttpContext.Current.Session(_AgencyCodeKey) Is Nothing) Then
Return 0
Else
Return HttpContext.Current.Session(_AgencyCodeKey)
End If
Else
Return AgencyCodeWIN
End If
End Get

End Property

/** 对于 Windows,代理代码被声明为共享

 Public Shared Property AgencyCodeWIN() As Integer
Get
Return _AgencyCodeWIN
End Get
Set(ByVal value As Integer)
_AgencyCodeWIN = value
End Set

End Property

/****判断是否是web应用.......

Public Shared ReadOnly Property IsWebApplication() As Boolean
Get
If AppCodeWIN IsNot String.Empty Then
'Desk top App is required to pass AppInfo
Return False
Else
'Web App is default
Return True
End If
End Get
End Property

多用户登录时数据会被覆盖吗?很多人说不可取,但又找不到什么可证明的理由不推荐?

如果有人能给出明确的理由,那就太好了。

谢谢,桑迪。

最佳答案

Will the data will be overwritten when multiple users login

没有

Many people say that it is not advisable, but cannot find any provable reason as to why it is not recommended?

在这种情况下,添加第三种运行模式将是一件痛苦的事情。

事实上,您的 clsUserProfile 类不应该知道您的应用程序运行模式(Web 应用程序或桌面)。它甚至不应该知道 HttpContext 和 Session 或在两种运行模式之间进行选择,只是为了获取 AgencyCode。

clsUserProfile 应该是一个普通的 C# 对象。运行模式应在应用程序中的更高级别进行处理。

关于asp.net - 在 Web 项目之外使用 HTTPContext 的任何问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com