首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >返回空的Asp.net HttpContext.Current.Items

返回空的Asp.net HttpContext.Current.Items
EN

Stack Overflow用户
提问于 2015-03-30 01:39:15
回答 2查看 1.4K关注 0票数 1

我正在测试如何构建一个asp.net web应用程序。我有三个网页:

代码语言:javascript
代码运行次数:0
运行
复制
Default.aspx;
Home.aspx;
ThirdPage.aspx;

当用户向Default.aspx提交登录数据时,我从db检索用户信息,将其放入类中并添加到上下文中,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
HttpContext.Current.Items.Add("UserData", userData);

然后,我使用Server.Transfer向Home.aspx发送请求。在Home.aspx上,我有一个指向ThirdPage.aspx的链接。我点击这个链接,希望这里也能提供用户信息,但它不是。当我希望在我的web应用程序中的所有页面上的用户会话中保留userdata类时,直到用户会话过期为止。有人能指点一下吗?这可能是一个初学者的问题,所以请友好。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-30 03:18:44

我不知道确切的问题可能是什么,但我有一些解决办法可能有效。如果我没有弄错的话,你是想通过几页获取用户信息吗?

下面是一些方法来完成这个任务:

  1. 重复您在第一页上所做的代码,将数据传输到第二页并对其进行调整,这样它将从第二页工作到第三页。这可能有效,但我不建议这样做,因为每次创建新页面时都必须重用和修改代码。
  2. 我认为更好的方法是将您的信息写入XML文件并在会话到期时删除该文件。您可以找到如何编写它这里和读取它这里
  3. 但我个人最喜欢的是上一节静态课。静态类可以从任何地方访问。如页面这里所示。 公共静态类Globals {公共静态字符串名称;公共静态int年龄;公共空SetName(){.}公共空SetAge(){.}公共字符串GetName(){.}公共int GetName(){.}
代码语言:javascript
代码运行次数:0
运行
复制
- Just make it a mutable class (You can change the variables using functions) and it should be easy to get the user information across pages.
代码语言:javascript
代码运行次数:0
运行
复制
    1. Using JSON to save and load here are c# functions:

公共空SaveInfo(用户用户){

//转换为Json字符串json = JsonConvert.SerializeObject(user,Formatting.Indented);

//写到文件,如果您需要/,则必须创建一个文件服务器端(@“File.WriteAllText”,json);

}

LoadUser(){ StreamReader r=新StreamReader("Location.json")) { string = r.ReadToEnd();列表项= JsonConvert.DeserializeObject>( json );}

票数 0
EN

Stack Overflow用户

发布于 2015-03-30 01:47:48

检查ASP.NET会话状态概述

用法:

代码语言:javascript
代码运行次数:0
运行
复制
Session["UserData"] = userData;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29337153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档