Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在表格A之前启动表格B。为什么表格A不';看不到用户身份验证信息?_C#_.net_Wcf - Fatal编程技术网

C# 在表格A之前启动表格B。为什么表格A不';看不到用户身份验证信息?

C# 在表格A之前启动表格B。为什么表格A不';看不到用户身份验证信息?,c#,.net,wcf,C#,.net,Wcf,简单概述:我有一个程序,需要用户验证才能访问或创建带有用户名和密码的文件。我有表格A和表格B;表单A是我的程序的一个主窗口,有一个指向表单B的按钮,它是登录表单。从现在起,我必须启动表单A,然后单击按钮转到表单B,因为需要登录文件。我的程序正在识别用户是否已登录,并启用按钮,允许我创建新文件或访问已创建的文件(默认情况下,这些按钮处于禁用状态,并且仅当身份验证首次成功时才启用) 在打开表单A之前,如何制作表单以检查身份验证? 如果我不够清楚,请告诉我 现在,我尝试通过以下操作在表格a之前初始化表

简单概述:我有一个程序,需要用户验证才能访问或创建带有用户名和密码的文件。我有表格A和表格B;表单A是我的程序的一个主窗口,有一个指向表单B的按钮,它是登录表单。从现在起,我必须启动表单A,然后单击按钮转到表单B,因为需要登录文件。我的程序正在识别用户是否已登录,并启用按钮,允许我创建新文件或访问已创建的文件(默认情况下,这些按钮处于禁用状态,并且仅当身份验证首次成功时才启用)

在打开表单A之前,如何制作表单以检查身份验证?

如果我不够清楚,请告诉我

现在,我尝试通过以下操作在表格a之前初始化表格B:

public MainWindow()
{
    AuthenticationWindow login = new AuthenticationWindow();
    login.ShowDialog();

    InitializeComponent();
}
问题是,当我这样做时,我的程序在身份验证到位后没有启用我的按钮

在初始化表单之前,我已尝试通过以下方式检查身份验证:

public MainWindow()
{
    AuthenticationWindow login = new AuthenticationWindow();
    login.ShowDialog();

    if (storedAuth != null)
    {
        // Making Deleting and Adding possible
        // when file was opened.
        tsmiOpen.Enabled = true;
        tsmiNew.Enabled = true;
    }

    InitializeComponent();
}
但我仍然无法打开或创建文件。似乎程序没有检查经过身份验证的用户

这是我的代码,用于在身份验证后启用我的按钮:

private void tsmiAuthenticate_Click(object sender, EventArgs e)
{
    AuthenticationWindow authWindow = new AuthenticationWindow();

    authWindow.ShowDialog();
    storedAuth = authWindow.Result;

    if (storedAuth != null)
    {

        tsmiOpen.Enabled = true;
        tsmiNew.Enabled = true;
    }
}
我的收缩代码:

namespace Password_Manager
{
    public partial class MainWindow : Form
    {
        private AuthenticateUser storedAuth;
        private HashPhrase hash = new HashPhrase();

        private bool newSelected, openSelected;

        public MainWindow()
        {
            AuthenticationWindow login = new AuthenticationWindow();
            login.ShowDialog();

            if (storedAuth != null)
            {
                // Making Deleting and Adding possible
                // when file was opened.
                tsmiOpen.Enabled = true;
                tsmiNew.Enabled = true;
            }

            InitializeComponent();
        }

        private void tsmiAuthenticate_Click(object sender, EventArgs e)
        {
            AuthenticationWindow authWindow = new AuthenticationWindow();

            // Displaying Authenticate Window.
            // Not allowing switching between forms.
            authWindow.ShowDialog();
            storedAuth = authWindow.Result;


            if (storedAuth != null)
            {
                // Making Deleting and Adding possible
                // when file was opened.
                tsmiOpen.Enabled = true;
                tsmiNew.Enabled = true;
            }
        }

        private void tsmiAddEntry_Click(object sender, EventArgs e)
        {
            // Checking if the file is new or opened.
            // This matter because we need to
            // have appropriate path to the file.
            if (openSelected)
            {
                AddEntryWindow addWindow = new AddEntryWindow
                    (this, storedAuth.UserName, storedAuth.Password, 
                    ofdOpenFile.FileName);

                // Displaying Add Entry Window.
                // Not allowing switching between forms so I am using ShowDialog().
                addWindow.ShowDialog();
            }
            if (newSelected)
            {
                AddEntryWindow addWindow = new AddEntryWindow
                    (this, storedAuth.UserName, storedAuth.Password, 
                    sfdNewFile.FileName);

                // Displaying Add Entry Window.
                // Not allowing switching between 
                // forms so I am using ShowDialog().
                addWindow.ShowDialog();
            }
        }

        private void tsmiDeleteEntry_Click(object sender, EventArgs e)
        {
            // Checking if the file is new or opened.
            // This matter because we need to
            // have appropriate path to the file.
            if (openSelected)
            {
                // When open file.
                DeleteEntryWindow deleteEntyWindow = new DeleteEntryWindow
                    (this, storedAuth.UserName,
                    storedAuth.Password, ofdOpenFile.FileName);
                deleteEntyWindow.ShowDialog();
            }
            else if (newSelected)
            {
                // When new file.
                DeleteEntryWindow deleteEntyWindow = new DeleteEntryWindow
                    (this, storedAuth.UserName,
                    storedAuth.Password, sfdNewFile.FileName);
                deleteEntyWindow.ShowDialog();
            }
        }
    }
}

我猜您的InitializeComponent()代码正在将按钮的已启用属性重置为false。此方法中的代码是由窗体设计器在VS中创建的代码

试试这个

public MainWindow()
        {
            InitializeComponent();
            AuthenticationWindow login = new AuthenticationWindow();
            login.ShowDialog();
            storedAuth = login.Result;


            if (storedAuth != null)
            {
                // Making Deleting and Adding possible
                // when file was opened.
                tsmiOpen.Enabled = true;
                tsmiNew.Enabled = true;
            }


        }

我猜您的InitializeComponent()代码正在将按钮的已启用属性重置为false。此方法中的代码是由窗体设计器在VS中创建的代码

试试这个

public MainWindow()
        {
            InitializeComponent();
            AuthenticationWindow login = new AuthenticationWindow();
            login.ShowDialog();
            storedAuth = login.Result;


            if (storedAuth != null)
            {
                // Making Deleting and Adding possible
                // when file was opened.
                tsmiOpen.Enabled = true;
                tsmiNew.Enabled = true;
            }


        }

它仍然使我的按钮处于禁用状态。我对此表示怀疑,我不确定是什么在单步执行:)你不知道如何设置断点并使用F10和F11键单步执行代码?我不会说谎。。。我从未使用过它,我只是调试它。我从未见过需要F10/11钥匙。我对这方面有点陌生。一些需要调查的东西,它会派上用场——而且会让人觉得需要钥匙。同时,试一下我发布的代码--我编辑过以实际设置auth值。它仍然会禁用我的按钮。我对此表示怀疑,我不确定是什么在执行:)你不知道如何设置断点并使用F10和F11键逐步执行代码?我不会撒谎。。。我从未使用过它,我只是调试它。我从未见过需要F10/11钥匙。我对这方面有点陌生。一些需要调查的东西,它会派上用场——而且会让人觉得需要钥匙。同时,请尝试我发布的代码——我编辑了这些代码以实际设置auth值。