c#中的全局变量
本文关键字:全局变量 | 更新日期: 2023-09-27 18:19:07
也许有人能帮我解决我在数据库应用程序上的一个小问题。
当一个用户用用户名和密码登录到我的数据库时,我希望用户名作为一个整体(所有表单等)被存储和访问,以便所进行的每个操作都携带用户签名。
我认为代码可能像下面这样:
namespace YourNamespaceName
{
class Variables
{
public static string strUser = "user name";
}
}
我可以用variables。struser
但是我不想硬编码用户名的值到我的应用程序。相反,我需要在运行时根据初始登录过程对其进行评估,并在应用程序运行期间保留用户名以供参考。
感谢大家期待你们的帮助。
namespace YourNamespaceName
{
public static class Variables
{
private static string strUser;
public static string User {
get { return strUser; }
set { strUser = value; }
}
}
}
你没有指定框架版本,但是这段代码可以在。net 2.0下工作。使用方法:
Variables.User = "User name";
你可以像下面这样有一个用户类,这可以确保在应用程序中只有一个用户实例,请参阅实例属性和测试存根了解使用细节,如果你愿意,你可以向类添加更多属性。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace yournamespace
{
public class User
{
private static User u;
public string Username
{ get { return _username; } }
private string _username;
protected User(){}
public void SetUserInformation(string uname)
{
_username = uname;
}
public static User Instance
{
get{
if(u==null)
u=new User();
return u;
}
}
#if(TEST_USER)
public static void Main(string[] args)
{
User u = User.Instance;
u.SetUserInformation("testuser");
User u1 = User.Instance;
}
#endif
}
}
如果您的应用程序维护会话状态,那么您的最佳解决方案是将变量驻留在会话中,并从会话作用域变量
您可以创建某种'user'类来存储用户信息,例如用户名,密码,电子邮件等…
你可以将这个类实现为一个单例,并在用户第一次登录时创建它。
那么当你需要用户信息时,你可以使用'user'单例类。
对于用户身份,应该使用IIdentity
接口。你可以从GenericIdentiry
开始。