C#登录XML循环错误密码
我对C#和从XML文件加载有点小问题。(只是一个通知-学生项目) 我正在用XML制作登录表单,如果XML文件中只有一个帐户,这很好,但是如果有更多的帐户,如果我选择第一个帐户以外的任何帐户,一个程序将加载一个帐户,然后循环X次,并说“错误的用户名或密码”C#登录XML循环错误密码,c#,xml,loops,streamreader,C#,Xml,Loops,Streamreader,我对C#和从XML文件加载有点小问题。(只是一个通知-学生项目) 我正在用XML制作登录表单,如果XML文件中只有一个帐户,这很好,但是如果有更多的帐户,如果我选择第一个帐户以外的任何帐户,一个程序将加载一个帐户,然后循环X次,并说“错误的用户名或密码” 公共静态bool登录(bool UserExists) { 弦宿位; 字符串sPassword; 字符串检查; int nPick; Console.WriteLine(“插入用户名:”); sUsername=Console.ReadLine
公共静态bool登录(bool UserExists)
{
弦宿位;
字符串sPassword;
字符串检查;
int nPick;
Console.WriteLine(“插入用户名:”);
sUsername=Console.ReadLine();
Console.WriteLine(“插入密码:”);
sPassword=Console.ReadLine();
List lUser=GetUsers();
for(int i=0;i
EDIT1:添加了XML
<data>
<user>
<username>admin</username>
<password>admin</password>
</user>
<user>
<username>user</username>
<password>user</password>
</user>
<user>
<username>user1</username>
<password>user1</password>
</user>
<user>
<username>user2</username>
<password>user2</password>
</user>
</data>
管理
管理
用户
用户
用户1
用户1
用户2
用户2
比如说
1) 若我输入“admin”“admin”组合,程序将进入菜单
2) 如果我输入“user1”“user1”,它将登录,但也会写三次“错误的用户名/密码”您已接近答案。您可能希望遍历每个用户,并且仅在没有匹配的情况下打印错误消息 请注意,我还将
UserExists
布尔值移动到函数变量中,而不是将其作为参数
public static bool Login()
{
string sUsername;
string sPassword;
string check;
int nPick;
bool UserExists = false;
Console.WriteLine("Insert username: ");
sUsername = Console.ReadLine();
Console.WriteLine("Insert password: ");
sPassword = Console.ReadLine();
List<User> lUser = GetUsers();
for (int i = 0; i < lUser.Count(); i++)
{
if (lUser[i].username == sUsername && lUser[i].password == sPassword)
{
UserExists = true;
Console.WriteLine("\n Login successfull!");
do
{
Menu();
check = Console.ReadLine();
int.TryParse(check, out nPick);
switch (nPick)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
System.Environment.Exit(0);
break;
default:
Console.WriteLine("\n Option not existing!");
break;
}
}
while (nPick != 5);
}
}
if (!UserExists) {
Console.WriteLine("\n Wrong username or password!\n");
}
return UserExists;
}
公共静态bool登录()
{
弦宿位;
字符串sPassword;
字符串检查;
int nPick;
bool UserExists=false;
Console.WriteLine(“插入用户名:”);
sUsername=Console.ReadLine();
Console.WriteLine(“插入密码:”);
sPassword=Console.ReadLine();
List lUser=GetUsers();
for(int i=0;i
给出一个xml示例和一个输入示例(您如何在控制台上为单个和多个用户输入用户名和密码)。出色的布尔运算帮助我压缩了一点代码,谢谢!
public static bool Login()
{
string sUsername;
string sPassword;
string check;
int nPick;
bool UserExists = false;
Console.WriteLine("Insert username: ");
sUsername = Console.ReadLine();
Console.WriteLine("Insert password: ");
sPassword = Console.ReadLine();
List<User> lUser = GetUsers();
for (int i = 0; i < lUser.Count(); i++)
{
if (lUser[i].username == sUsername && lUser[i].password == sPassword)
{
UserExists = true;
Console.WriteLine("\n Login successfull!");
do
{
Menu();
check = Console.ReadLine();
int.TryParse(check, out nPick);
switch (nPick)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
System.Environment.Exit(0);
break;
default:
Console.WriteLine("\n Option not existing!");
break;
}
}
while (nPick != 5);
}
}
if (!UserExists) {
Console.WriteLine("\n Wrong username or password!\n");
}
return UserExists;
}