C#应用程序中.用户登陆后.比如要把用户名,用户等级,用户IP地址等等记录到变量中.我们需要使用到全局变量.就跟ASP网站中登陆后使用SESSION,COOKIE的原理是一样的.有一种方式总可能会记录下用户登陆的信息,C#中用到的是自定义一个类.其中定义静态变量来实现的,下面是使用的部分代码:
//定义类GlobalUserClass.CS 类代码
using System;
using System.Net;
namespace EP_MIS
{
/// <summary>
/// ProcessUserClass 的摘要说明。
/// </summary>
public class GlobalUserClass
{
private static string HostIPAddress="";
private static string CurrentUserName="";
public GlobalUserClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
// 在此处放置用户代码以初始化页面
}
public static string GlobalUserIP
{
get
{
if (HostIPAddress=="")//如果没有创建,就创建一个新的
{
IPHostEntry oIPHost=Dns.Resolve(Environment.MachineName);
if(oIPHost.AddressList.Length>0)
HostIPAddress=oIPHost.AddressList[0].ToString();
}
else
{
HostIPAddress="";
}
return HostIPAddress;
}
}
public static string GlobalUserName
{
get
{
return CurrentUserName;
}
set
{
CurrentUserName=value;
}
}
}
}
//在登陆的主窗体界面实例化这个类.并在用户登陆成功后将登陆后的用户名等等参数传给类.然后在其他的窗体中就可以直接使用类似"类名称.类中的全局静态变量名"来调用此全局的变量数值.
public GlobalUserClass myclass=new GlobalUserClass();
public MainForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
//按钮事件中关键代码
if(dbUserName==inputUserName)
{
MessageBox.Show("用户当前登陆成功","登陆成功");
GlobalUserClass.GlobalUserName=inputUserName;
//this.textBox3.Text=GlobalUserClass.GlobalUserName;
SoftUserContactForm form2=new SoftUserContactForm();
this.groupBox1.Visible=false;
form2.Show();
}
else
{
MessageBox.Show("用户当前登陆失败","登陆成功");
}
//别的窗体中调用
textBox1.Text=GlobalUserClass.GlobalUserName;