我正在测试构建一个asp.net Web应用程序。 我所拥有的是3个网页:
Default.aspx;
Home.aspx;
ThirdPage.aspx;
当用户将登录数据提交到Default.aspx时,我从db检索用户信息,将其放入类中并将其添加到Context中,如下所示
HttpContext.Current.Items.Add("UserData", userData);
然后我使用Server.Transfer将请求发送到Home.aspx。 在Home.aspx上,我有一个指向ThirdPage.aspx的链接。我点击此链接并希望此处也可以获得用户信息,但事实并非如此。我希望在我的Web应用程序中的所有页面上跨用户会话保留userdata类,直到用户会话过期。 有人可以指导一下吗? 这可能是一个初学者的问题,所以请善待。 感谢
答案 0 :(得分:1)
答案 1 :(得分:0)
我不确定确切的问题是什么,但我有一些可行的解决方案。如果我没弄错的话,你试图在几页内获取用户信息?
以下是完成这项工作的一些方法:
但我个人最喜欢的是拥有一个静态类。静态类可以从任何地方访问。如页面here所示。
public static class Globals
{
public static String name;
public static int age;
public void SetName(){...}
public void SetAge(){...}
public String GetName(){...}
public int GetName(){...}
}
只需将其设为可变类(您可以使用函数更改变量),并且可以轻松地跨页面获取用户信息。
public void SaveInfo(用户用户){
//转换为Json string json = JsonConvert.SerializeObject(user,Formatting.Indented);
//Write to file, you will have to create a file serverside if you want
//if you have a
File.WriteAllText(@"location.json", json);
}
public void LoadUser(){ 使用(StreamReader r = new StreamReader(“Location.json”)) { string json = r.ReadToEnd(); List items = JsonConvert.DeserializeObject>(json); }