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