asp.net网站的全局变量

时间:2010-12-22 11:16:57

标签: asp.net vb.net global-variables

我想在我的网站上的几个页面中声明如下所示的变量。我假设而不是每页都宣布一次,我可以在全球范围内做到这一点吗?我已经在类(app_code文件夹)和global.asax页面中尝试过它,但我的代码似乎无法找到它。我可能会因为这一切都错了吗?代码如下......

Dim myUser As MembershipUser = Membership.GetUser()

所以基本上我的页面找不到'myUser'变量。任何帮助非常感谢!感谢

5 个答案:

答案 0 :(得分:4)

如果您需要这样的“全局”,请使用SessionApplication个对象。

如果需要,每个用户使用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")

注意:全局应用程序变量存储为字符串,因此,如果需要存储对象,则必须将它们序列化为字符串。