aspx 页面之外的共享属性的值是否对所有会话都是全局的?
Are the values of Shared Properties outside of aspx pages Global to all sessions?
请原谅,已经好几年了,我的搜索结果好坏参半。在传统的 .NET 表单应用程序中使用下面的 VB 代码,ClientKey 的值对于会话或应用程序域来说是全局的吗?
Public Class AuthenticationClient
Private Shared Property ClientKey As String
Get
Return HttpContext.Current.Session("ClientKey")
End Get
Set(value As String)
HttpContext.Current.Session("ClientKey") = value
End Set
End Property
'The function below is called only once on the FormsAuth login page for each successful login attempt
Public Shared Sub SetClientKeyForSession(clientKeyForSession As String)
ClientKey = clientKeyForSession
End Sub
'This can be called for multiple contacts
Public Shared Async Sub SaveSomething(userId As Integer)
Await SomeDataAccess.SaveThisAsync(userId, ClientKey) '<- Not Me.ClientKey but is it the same session value set at login, I assume yes.
End Sub
....
End Class
Properties 只是获取和设置方法。它是由应用程序域共享的静态 字段 。由于您没有字段(仅在 get 和 set 方法中包装了一个会话变量),所有内容都限定在会话范围内。
请注意,automatic 属性(例如 VB 中的 Shared Property MyString As String
)实际上会创建您看不到的支持字段。但这不是你在这里做的,所以没有创建支持字段,也没有使用静态数据。
请原谅,已经好几年了,我的搜索结果好坏参半。在传统的 .NET 表单应用程序中使用下面的 VB 代码,ClientKey 的值对于会话或应用程序域来说是全局的吗?
Public Class AuthenticationClient
Private Shared Property ClientKey As String
Get
Return HttpContext.Current.Session("ClientKey")
End Get
Set(value As String)
HttpContext.Current.Session("ClientKey") = value
End Set
End Property
'The function below is called only once on the FormsAuth login page for each successful login attempt
Public Shared Sub SetClientKeyForSession(clientKeyForSession As String)
ClientKey = clientKeyForSession
End Sub
'This can be called for multiple contacts
Public Shared Async Sub SaveSomething(userId As Integer)
Await SomeDataAccess.SaveThisAsync(userId, ClientKey) '<- Not Me.ClientKey but is it the same session value set at login, I assume yes.
End Sub
....
End Class
Properties 只是获取和设置方法。它是由应用程序域共享的静态 字段 。由于您没有字段(仅在 get 和 set 方法中包装了一个会话变量),所有内容都限定在会话范围内。
请注意,automatic 属性(例如 VB 中的 Shared Property MyString As String
)实际上会创建您看不到的支持字段。但这不是你在这里做的,所以没有创建支持字段,也没有使用静态数据。