用户输入用户名和密码。当它运行时通过并读取文本文件并检查用户名和密码是否匹配,如果他们这样做,则表示欢迎。事情就是当我输入第一个用户名和密码(绿色和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.";
}
}
}
}
}
文本文件看起来像这样(可能是我的文本文件格式错误)?
Green
123
Blue
123
答案 0 :(得分:4)
这是罪魁祸首:
i < Val.Length/2
正在检查文本文件的半行而不是所有行,因此它应该是:
i < Val.Length
现在它将遍历它的所有行。
我重构了你的代码块
将您的代码更改为:
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.";