我想在我的网站上的几个页面中声明如下所示的变量。我假设而不是每页都宣布一次,我可以在全球范围内做到这一点吗?我已经在类(app_code文件夹)和global.asax页面中尝试过它,但我的代码似乎无法找到它。我可能会因为这一切都错了吗?代码如下......
Dim myUser As MembershipUser = Membership.GetUser()
所以基本上我的页面找不到'myUser'变量。任何帮助非常感谢!感谢
答案 0 :(得分:4)
如果您需要这样的“全局”,请使用Session
或Application
个对象。
如果需要,每个用户使用Session
,如果是整个应用,则使用Application
。
答案 1 :(得分:2)
创建一个类/结构并添加一个静态
namespace MyApp
{
public class Variables
{
public static User MembershipUser
{
get { return Membership.GetUser(); }
}
}
}
然后您可以使用:
访问值/属性MyApp.Variables.MembershipUser
如果此GetUser()返回具有“Username”属性的用户对象,则可以:
Hello <%=MyApp.Variables.MembershipUser.Username%>
这是一个VB.NET版本:
Namespace MyApp
Public Class Variables
Public Shared ReadOnly Property MembershipUser() As User
Get
Return Membership.GetUser()
End Get
End Property
End Class
End Namespace
答案 2 :(得分:0)
这可以放在页面基类中,也可以放在System.Web.UI.Page
public static MembershipUser GetMembershipUser(this System.Web.UI.Page page)
{
return Membership.GetUser();
}
答案 3 :(得分:0)
@ stian.net我有以下内容 - 完全符合我的要求。你会说这是正确的做法吗?
Public Class Variables
Public Shared ReadOnly Property myUser As MembershipUser
Get
Return Membership.GetUser()
End Get
End Property
End Class
答案 4 :(得分:0)
尝试一下:
Application("MembershipUser") = "J. Doe"
通过以下方式检索:
MyUser$ = Application("MembershipUser")
注意:全局应用程序变量存储为字符串,因此,如果需要存储对象,则必须将它们序列化为字符串。