C#不检查所有用户名和密码

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

用户输入用户名和密码。当它运行时,会遍历并读取文本文件,并检查用户名和密码是否匹配,如果匹配,则显示欢迎。问题是当我输入它登录的第一个用户名和密码(绿色和123)时,但当我输入(蓝色123)时,什么都没有发生。它不是在阅读全文吗

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 问题是当匹配项被找到时,你们并没有打破循环,它会再次迭代并产生问题。请看我编辑的文章