如何在C#WinForms应用程序(凭据)中创建全局用户?

问题描述 投票:0回答:3

我有一个用户名和密码的用户登录表单 - 我想全局保存它们,以便在登录后可以使用它们。我尝试使用以下代码执行此操作:

 namespace PassManager
    {
      struct SesUser
        {
            int id;
            string username;
            string password;
        }
       public class US
        {
            SesUser uu;
        }

    }

我尝试用一​​个成员public class声明一个SesUser,我想在我的所有cs文件中访问该用户。我想问一下这是否是正确的方法,或者有更好的方法来完成这项任务?

c# winforms login
3个回答
0
投票

Project > Add Item > Class并称之为CurrentUser

然后在里面创建public static parameters

Static创建可通过类名本身访问的对象(不是从类创建的对象)

所以CurrentUser类的例子是这样的:

public static class CurrentUser
{
    public static string Name; //Accessible with CurrentUser.Name
    public static string FamilyName; //Accessible with CurrentUser.FamilyName
    public static int Age; //Accessible with CurrentUser.Age

    public bool initialized = false //Accessible only through object which is created using CurrentUser

}

所以现在你可以在同一个namespace中的任何类中访问前3个变量,如下所示:

public class SomeRandomClass
{
    string ThisUserName = CurrentUser.Name;
    string ThisUserFamilyName = CurrentUser.FamilyName;

    CurrentUser.Age = 15;
}

可以从同一名称空间中的任何类访问静态对象。从一个类更改为静态对象将影响其他类中的该对象,因此在进行更改时要小心。

有关更多信息Access Modifiers,请访问here


0
投票

您可以创建一个全局类,该类将保留经过身份验证的用户名,然后如果该类用户名不为null,则可以访问。

或者您可以参考Microsoft提供的此链接

How to: Implement User Login with Client Application Services


0
投票

让你的US类静态,然后你可以从任何地方访问它:

public static class US
{
    public static SesUser uu { get; set; }
}

然后你可以访问它:

US.uu

EG

System.Diagnostics.Debug.WriteLine($"{US.uu.id} {US.uu.username} {US.uu.password}");
© www.soinside.com 2019 - 2024. All rights reserved.