这是一个ASP.NET Forms项目。当用户输入他/她的用户名和密码时(在登录页面中)我想保存用户名,以便可以在项目的任何页面的代码中检索它。我知道我可以通过会话变量来做到这一点 但是是否可以使用Get Set创建一个Static Public类并将值存储在那里并使用此类检索它?
答案 0 :(得分:0)
如果您正在使用母版页,请在该商店中创建隐藏字段中的隐藏字段,以便您可以在使用该母版页的任何页面中访问该页面。
答案 1 :(得分:0)
静态类在您的应用中的实例/会话之间共享,这意味着您可能最终得到类似于竞争条件的内容;例如,User_A的请求可以读取User_B在静态类中设置的值。 (见SO answer)
从臀部拍摄,为用户的信息编写包装/抽象类可能更容易,这样可以更轻松地访问其详细信息。类似的东西:
public class UserDetails{
public string Name;
public string Age;
public string Gender;
public UserDetails(HttpContext context){
this.Name = context.User.Identity.Name;
this.Age = ...;
this.Gender = ...;
// Alternatively, you could perform your own data access to
// get/set these details. It depends on how you're storing your
// users' info.
}
}
然后在你的代码中......
UserDetails userDetails = new UserDetails(context.Current);
Response.Write(userDetails.Name); // user's name
Response.Write(userDetails.Age); // user's age
...