C# Asp.Net无法使用streamreader找到txt文件 string[]用户名; 字符串[]密码; 布尔用户名; 布尔·帕索克; 布尔匹配; 字符串passinp; 字符串userinp; 受保护的无效按钮1\u单击(对象发送者,事件参数e) { StreamReader SrUs=新的StreamReader(“Usernames.txt”); StreamReader SrPass=新的StreamReader(“Password.txt”); int i=0; 而(!SrUs.EndOfStream) { 用户名[i]=SrUs.ReadLine(); } i=0; while(SrPass.EndOfStream) { 密码[i]=SrPass.ReadLine(); } 如果(txt_pass.Text!=“”&txt_username.Text!=“”) { passinp=txt_pass.Text; userinp=txt_username.Text; } 其他的 { 标签3.Text=“缺少信息”; } int j=0; 对于(i=0;i
}C# Asp.Net无法使用streamreader找到txt文件 string[]用户名; 字符串[]密码; 布尔用户名; 布尔·帕索克; 布尔匹配; 字符串passinp; 字符串userinp; 受保护的无效按钮1\u单击(对象发送者,事件参数e) { StreamReader SrUs=新的StreamReader(“Usernames.txt”); StreamReader SrPass=新的StreamReader(“Password.txt”); int i=0; 而(!SrUs.EndOfStream) { 用户名[i]=SrUs.ReadLine(); } i=0; while(SrPass.EndOfStream) { 密码[i]=SrPass.ReadLine(); } 如果(txt_pass.Text!=“”&txt_username.Text!=“”) { passinp=txt_pass.Text; userinp=txt_username.Text; } 其他的 { 标签3.Text=“缺少信息”; } int j=0; 对于(i=0;i,c#,asp.net,stream,streamreader,reader,C#,Asp.net,Stream,Streamreader,Reader,} 因此,当我运行此程序时,它会给我一个找不到txt文件的错误,在asp.net和windows窗体应用程序中使用streamreader时,它是否相同,我将txt文件放在bin和root文件夹中,但它又给了我相同的错误。您的问题是,您不知道当前DLL实际在哪里执行。您已经猜到了“bin”目录 Environment.CurrentDirectory可能是您最好的选择 或者在HttpContext上看到这个问题 TBH在网站工作目录中的文本文件中存储用户名和密码可能是个坏主意。考虑C:\iN
因此,当我运行此程序时,它会给我一个找不到txt文件的错误,在asp.net和windows窗体应用程序中使用streamreader时,它是否相同,我将txt文件放在bin和root文件夹中,但它又给了我相同的错误。您的问题是,您不知道当前DLL实际在哪里执行。您已经猜到了“bin”目录 Environment.CurrentDirectory可能是您最好的选择 或者在HttpContext上看到这个问题 TBH在网站工作目录中的文本文件中存储用户名和密码可能是个坏主意。考虑C:\iNETPUB之外的固定目录存储,或者使用ADFS或数据库< /P>
不要在家中烘焙自己的安全代码您的问题是您不知道当前DLL的实际执行位置。您已经猜到了“bin”目录 Environment.CurrentDirectory可能是您最好的选择 或者在HttpContext上看到这个问题 TBH在网站工作目录中的文本文件中存储用户名和密码可能是个坏主意。考虑C:\iNETPUB之外的固定目录存储,或者使用ADFS或数据库< /P>
不要在ASP.NET中自行设置安全代码,因为您不能直接使用系统目录。因此,您必须使用
Server.MapPath(“~/”)
来获取应用程序的根目录路径
你可以这样用
string[] usernames;
string[] password ;
bool username;
bool passok;
bool match;
string passinp;
string userinp;
protected void Button1_Click(object sender, EventArgs e)
{
StreamReader SrUs = new StreamReader("Usernames.txt");
StreamReader SrPass = new StreamReader("Password.txt");
int i = 0;
while(!SrUs.EndOfStream)
{
usernames[i] = SrUs.ReadLine();
}
i = 0;
while(SrPass.EndOfStream)
{
password[i] = SrPass.ReadLine();
}
if (txt_pass.Text != "" && txt_username.Text != "")
{
passinp = txt_pass.Text;
userinp = txt_username.Text;
}
else
{
Label3.Text = "Missing information";
}
int j = 0;
for(i = 0;i < usernames.Length;i++)
{
if(usernames[i] == userinp)
{
username = true;
break;
}
}
for(j = 0 ; j < password.Length;j++)
{
if(password[j]==passinp)
{
passok = true;
break;
}
}
if(username && passok && i == j)
{
Label3.Text = "Logon Correct";
}
else
{
Label3.Text = "Logon Incorect";
}
}
protected void Button2_Click(object sender, EventArgs e)
{
}
}
在ASP.NET中,不能直接使用系统目录。因此,您必须使用
Server.MapPath(“~/”)
来获取应用程序的根目录路径
你可以这样用
string[] usernames;
string[] password ;
bool username;
bool passok;
bool match;
string passinp;
string userinp;
protected void Button1_Click(object sender, EventArgs e)
{
StreamReader SrUs = new StreamReader("Usernames.txt");
StreamReader SrPass = new StreamReader("Password.txt");
int i = 0;
while(!SrUs.EndOfStream)
{
usernames[i] = SrUs.ReadLine();
}
i = 0;
while(SrPass.EndOfStream)
{
password[i] = SrPass.ReadLine();
}
if (txt_pass.Text != "" && txt_username.Text != "")
{
passinp = txt_pass.Text;
userinp = txt_username.Text;
}
else
{
Label3.Text = "Missing information";
}
int j = 0;
for(i = 0;i < usernames.Length;i++)
{
if(usernames[i] == userinp)
{
username = true;
break;
}
}
for(j = 0 ; j < password.Length;j++)
{
if(password[j]==passinp)
{
passok = true;
break;
}
}
if(username && passok && i == j)
{
Label3.Text = "Logon Correct";
}
else
{
Label3.Text = "Logon Incorect";
}
}
protected void Button2_Click(object sender, EventArgs e)
{
}
}
我只是为我的班级做一个非常简单的编程项目。如果我这样做是为了某人或我的个人使用,那么我可能会使用sql或从acces导入数据库或其他东西;如果你是一名教师,这很糟糕。学生们通过例子学到的东西真是太神奇了——这是一个可怕的例子。我正在为我的班级做一个非常简单的编程项目。如果我这样做是为了某人或我的个人使用,那么我可能会使用sql或从acces导入数据库或其他东西;如果你是一名教师,这很糟糕。学生们通过例子学到的东西真是太神奇了——这是一个可怕的例子。