验证组成员身份

时间:2014-02-19 16:29:42

标签: c# asp.net sql

我正在设计一个健身网络应用程序,允许您注册和登录。注册后,您可以通过输入组的用户名和密码加入组。 我很难检查登录用户是否属于该组。目前,如果您输入正确的组的用户名和密码,无论您是否是会员,您都将进入该组的门户网站。 这是我的代码:

     SqlConnection con = new SqlConnection(@"Connection string");


        con.Open();

        SqlCommand cmd = new SqlCommand("select COUNT(*)FROM Groups WHERE GroupName='" + txtGroupUsername.Text + "' and Password='" + txtGroupPassword.Text + "'");

        cmd.Connection = con;



        int OBJ = Convert.ToInt32(cmd.ExecuteScalar());
        if (OBJ > 0)
        {

            cmd.CommandText = "Insert into AssignGroups(MemberId,GroupId) Select Members.MemberId, Groups.GroupId From Members, Groups Where Members.Username= '" + lblRegistered.Text + "' And Groups.GroupName= '" + txtGroupUsername.Text + "'";





            Response.Redirect("GroupMembersM.aspx");
        }
        else
        {
            lblError.Visible = true;

            lblError.Text = "Invalid username or password";

        }
    }

目前,我的数据库中有一个AssignGroups表,它从成员表中获取memberId,从组表中获取GroupId。 我可以使用什么代码来检查我的memberId和GroupId是否与组的用户名和密码匹配。

1 个答案:

答案 0 :(得分:0)

您可以在AssignGroups表中添加第3列,并将其命名为Enabled / Authed etc

然后,当将用户添加到组中时将其设置为true,然后您可以针对mmeber和组ID进行选择

select * from AssignGroups where groupid=@group and memberid=@member and enabled=1

您还可以为每个名为group的用户添加一个值,然后该组将保存groupid,并在列包含值时进行验证

select * from user where memberid=@id and groupid=@group

您也可以通过分隔符来允许多个组成员身份

update members set [name, email, group] values [@name, @email, @group]
command.add.parameterswithvalue("@name", value)
command.add.parameterswithvalue("@email", value)
command.add.parameterswithvalue("@group", value + "-" + value + "-" + value)

然后当你把它带回来时你可以对结果做一个.contains或string.split然后检查