首页 > 解决方案 > 比较文本框和预定义列表的值?

问题描述

我是编码新手。我已经预先定义了一个带有用户名和密码的字符串。我想编写逻辑来首先找到用户名,然后比较相应文本框中的密码。如果用户名和密码匹配,我想用更多代码呈现另一个文件。谢谢你。我已经根据评论编辑了代码,但仍然没有运气。当用户和密码正确时,它指向 else 语句。

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GridView
{
public partial class practise : System.Web.UI.Page
{


    public static List<User> listuser = new List<User>()
   {
            new User() {ID = 1, UserName = "Dhruv", Password = "hello"},
            new User() {ID = 2, UserName = "Gaurav", Password = "12345"},
            new User() {ID = 3, UserName = "Rahul", Password = "asdfg"},
            new User() {ID = 4, UserName = "Guru", Password = "qwerty"}
   };

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            listuser = new List<User>();
            GRIDDATA.DataSource = listuser;
            GRIDDATA.DataBind();
        }
    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        User data = new User();
        data.UserName = TextBox1.Text;
        data.Password = TextBox2.Text;

        bool UserExists(string UserName, string Password)
        {
            return listuser.Any(a => a.UserName.Equals(UserName) && a.Password.Equals(Password));
        }

        if(UserExists(data.UserName, data.Password))
        {

            Response.Redirect("https://www.google.com");
        }
        else
        {
            Response.Redirect("https://www.wwe.com");
        }





    }
}


public class User
{   
    public int ID { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }   
}
}

标签: c#asp.netwebforms

解决方案


忽略代码中一些(咳咳)更有趣的区域并阅读有关面值的问题,您想要类似的内容:

 public static List<User> listuser = new List<User>(){
        new User() {ID = 1, UserName = "Dhruv", Password = "hello"},
        new User() {ID = 2, UserName = "Gaurav", Password = "12345"},
        new User() {ID = 3, UserName = "Rahul", Password = "asdfg"},
        new User() {ID = 4, UserName = "Guru", Password = "qwerty"}
    };

protected bool UserExists(string userName, string password)
{
   return listuser.Any(a => 
              a.UserName.Equals(userName, StringComparison.CurrentCultureIgnoreCase) 
              && 
              a.Password.Equals(password));
}

.Equals(userName, StringComparison.CurrentCultureIgnoreCase)用来使用户名比较不区分大小写。

如果您添加到listuser( listuser.Add(data);) 您确实需要了解您的代码当前不是线程安全的并且会崩溃...


推荐阅读