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