c#中的全局变量

本文关键字:全局变量 | 更新日期: 2023-09-27 18:19:07

也许有人能帮我解决我在数据库应用程序上的一个小问题。

当一个用户用用户名和密码登录到我的数据库时,我希望用户名作为一个整体(所有表单等)被存储和访问,以便所进行的每个操作都携带用户签名。

我认为代码可能像下面这样:

namespace YourNamespaceName
{
    class Variables
    {
        public static string strUser = "user name";
    }
}

我可以用variables。struser

但是我不想硬编码用户名的值到我的应用程序。相反,我需要在运行时根据初始登录过程对其进行评估,并在应用程序运行期间保留用户名以供参考。

感谢大家期待你们的帮助。

c#中的全局变量

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开始。