日期:2014-05-17  浏览次数:20534 次

把SESSION的值赋给全局变量,全局变量是如何运行的
如下所示
C# code

public partial class hylogin : System.Web.UI.Page
{
    Session["Username"]="aaaa";
    UserInfo MyIfno=New UserInfo();
    MyInfo.Username=Session["UserName"];
}
public class UserInfo
{
    public string Username;
}



问题:
1. 用这个全局变量存储SESSION的值是否可行;
2. 如果可以当运行网站时 其他用户会不会改变别人 MyInfo.Username 的值, 如果不可以那一般用什么方式存储用户信息
3. 如果各用户相互之间不影响,为什么?

------解决方案--------------------
哪里有全局变量
public string Username;
只是UserInfo一个公用字段而已
------解决方案--------------------
public class UserInfo
{
public string Username;
}

本身不是全局的
------解决方案--------------------
每次创建session的时候,它的ID是不一样的,
且你各用户次进入页面都new 了一个UserInfo的实例对象,应该不会影响
------解决方案--------------------
public string Username;
这是所有命名空间的程序里都可见,都能访问的一个变量,但是他并不是大家都可以共享的一个变量,每一个访问者都需要实例化他,然后给他赋值也是不一样的,如果大家要共享这个变量的值,就要public static string Username;变成静态公共的才行
因为你这么写不会有什么冲突问题

------解决方案--------------------
在gobal程序中运行
------解决方案--------------------
你这想法很古怪.session是私有的,如果你是想把一个数据让所有用户共享,那就
用application
譬如
Application["abc"]="xyz";


------解决方案--------------------
全局变量Application
Session都是基于会话作用域.
------解决方案--------------------
探讨
如下所示
C# codepublicpartialclass hylogin : System.Web.UI.Page
{
Session["Username"]="aaaa";
UserInfo MyIfno=New UserInfo();
MyInfo.Username=Session["UserName"];
}publicclass UserInfo
{publicstring Username;
}
问题:
1. 用这个全局变量存储SESSION的值是否可行;
2. 如果可以当运行网站时 其他用户会不会改变别人 MyInfo.Username 的值,  如果不可以那一般用什么方式存储用户信息
3. 如果各用户相互之间不影响,为什么?