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导入数据库或其他东西;如果你是一名教师,这很糟糕。学生们通过例子学到的东西真是太神奇了——这是一个可怕的例子。