C#不检查所有用户名和密码
用户输入用户名和密码。当它运行时,会遍历并读取文本文件,并检查用户名和密码是否匹配,如果匹配,则显示欢迎。问题是当我输入它登录的第一个用户名和密码(绿色和123)时,但当我输入(蓝色123)时,什么都没有发生。它不是在阅读全文吗C#不检查所有用户名和密码,c#,asp.net,login,C#,Asp.net,Login,用户输入用户名和密码。当它运行时,会遍历并读取文本文件,并检查用户名和密码是否匹配,如果匹配,则显示欢迎。问题是当我输入它登录的第一个用户名和密码(绿色和123)时,但当我输入(蓝色123)时,什么都没有发生。它不是在阅读全文吗 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebContro
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace BookStoreOnline
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login_Click(object sender, EventArgs e)
{
string[] Val = System.IO.File.ReadAllLines(@"C:\......\......\...\.....\...\Login.txt");
for (int i = 0; i < Val.Length/2; i += 2)
{
if (TextBox1.Text == Val[i])
{
if (TextBox2.Text == Val[i + 1])
{
Session.Add("UserName", Val[i]);
string x = "HomePage";
Response.Redirect(x + ".aspx");
}
else
Label1.Text = "Incorrect Password.";
}
}
}
}
}
罪魁祸首是:
i
它正在检查文本文件的半行,而不是所有行,因此应该是:
i
现在它将在它的所有行中循环
更新:
我已经重构了你的代码块
将代码更改为如下所示:
bool LoggedIn= false;
string x = null;
for (int i = 0; i < Val.Length/2; i += 2)
{
if (TextBox1.Text == Val[i])
{
if (TextBox2.Text == Val[i + 1])
{
Session.Add("UserName", Val[i]);
x = "HomePage";
LoggedIn = true;
break;
}
else
LoggedIn = false;
}
}
if(LoggedIn)
Response.Redirect(x + ".aspx");
else
Label1.Text = "Incorrect Password.";
bool LoggedIn=false;
字符串x=null;
对于(int i=0;i
罪魁祸首如下:
i
它正在检查文本文件的半行,而不是所有行,因此应该是:
i
现在它将在它的所有行中循环
更新:
我已经重构了你的代码块
将代码更改为如下所示:
bool LoggedIn= false;
string x = null;
for (int i = 0; i < Val.Length/2; i += 2)
{
if (TextBox1.Text == Val[i])
{
if (TextBox2.Text == Val[i + 1])
{
Session.Add("UserName", Val[i]);
x = "HomePage";
LoggedIn = true;
break;
}
else
LoggedIn = false;
}
}
if(LoggedIn)
Response.Redirect(x + ".aspx");
else
Label1.Text = "Incorrect Password.";
bool LoggedIn=false;
字符串x=null;
对于(int i=0;i BTW考虑在<<代码> < <代码>循环】,因为它是无用的。将仍然在进行中:(BTW考虑考虑< <代码> > />代码> < <代码>循环】,因为它没有用。仍然会在进行中:)实际上,我想是这样,但是当我点击它时,它不是。只有当我输入绿色时登录,但当输入蓝色时仍然无效谢谢我会检查我在学校做的工作是否完美,当我尝试在visual Studio IDK中打开它时发生了什么lol@NBera问题是当找到匹配项时,您并没有中断循环,它再次重复并产生问题看我编辑的帖子实际上我以为是这样的,但不是当我点击按钮时,它什么都不做,而是当我输入绿色的日志时,但当输入蓝色的日志时,它仍然什么都不做。谢谢,我会检查我在学校做的很好,当我尝试在visual Studio IDK中打开它时,发生了什么lol@NBera 问题是当匹配项被找到时,你们并没有打破循环,它会再次迭代并产生问题。请看我编辑的文章