2013-05-08 29 views
0

我试图使用用户会话来处理我的Global.asa代码:捕获的Session_OnStart会话变量 - Global.asa中

Sub Session_OnStart 
    sAdmin = Session("Admin")  
    Application("Admin") = sAdmin 

Session("Admin")不为空,但Application("Admin")总是当我检查它时,空了。是否有一个原因,我无法捕获global.asa的Session_OnStart部分中的用户会话变量?

当我这样做Application("Admin")不上来空的,它出来作为hi

Sub Session_OnStart 
    Application("Admin") = "hi" 

我有什么做的捕捉在Global.asa用户会话值?

+0

你在期待sAdmin的价值是什么?创建新会话时触发Sessoin_start,因此Session(“Admin”)应该为空。 – AContractor 2013-05-08 15:55:22

+0

像“Bob”这样的管理员名称,我想只在用户是管理员时才触发代码。 – 2013-05-08 15:57:25

+0

代码是否需要运行一次或每个请求? – AContractor 2013-05-08 15:59:52

回答

0

看起来您尝试设置“通过引用”分配,因此Application("Admin")将在Session("Admin")更改时发生更改。我担心这种东西在传统的ASP中是不可能的。

我能想到的唯一优雅的方式是添加辅助方法将被包含在所有的网页:

Sub AssignAdminSession(value) 
    Session("Admin") = value 
    Application("Admin") = value 
End Sub 

然后,而不是仅仅Session("Admin") = "something"有无处不在:

Call AssignAdminSession("value here")