我有一个登录页面,当用户成功登录时,当前会重定向到默认布局页面。但是,我为不同的用户创建了一个不同的布局页面,我想要做的就是能够查看我的数据库并检查用户的类型,当用户名和密码正确时,response.redirect
根据用户的类型将其public partial class Login : System.Web.UI.Page
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection();
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString = "Data Source=CHRIS\\SQLEXPRESS;Initial Catalog=FPSDD;Integrated Security=True";
con.Open();
}
protected void BtnLogin_Click(object sender, EventArgs e)
{
cmd.CommandText = "SELECT PersonType FROM Person where Username='" + txtUsername.Text + "' and Password='" + txtPassword.Text + "' and PersonType='" + userType.SelectedValue + "'";
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(ds, "Person");
if (ds.Tables[0].Rows.Count > 0)
{
if (userType.SelectedValue == "Student")
{
Response.Redirect(Url.Action(""));
}
else if (userType.SelectedValue == "Instructor")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Counselor")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Parent")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Principal")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Admin")
{
Response.Redirect("");
}
else
{
cmd.CommandText = "SELECT PersonType FROM Person where Username='" + txtUsername.Text + "' and Password='" + txtPassword.Text + "'";
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(ds, "Person");
if (ds.Tables[0].Rows.Count > 0)
{
Label1.Text = "Invalid User Type. Please Try Again!";
}
else
{
Label1.Text = "Invalid User Type, Username or Password. Please Try Again!";
}
}
}
}
到特定的布局页面。我对每种用户类型都有不同的看法。
The different user views under shared folder.
AWS_IAM
答案 0 :(得分:1)
我将扩展MCoder的原始答案。
如果您使用:
return RedirectToAction("YourMethodName", "YourControllerName");
您可以将此Redirect方法的重载传递给参数。
当您的用户登录时,返回他/她的用户类型。 将其传递给Redirect,如下所示:
return RedirectToAction("YourMethodName", "YourControllerName", new { paramName = userType });
在YourController.YourMethod(paramType paramName)中有一个条件语句。
if(paramName = x)
{
return View("CorrectViewName", appropriateViewModel);
}
else ...
如果您有超过2或3种用户类型,则可以使用Switch / Case而不是If / Else。
答案 1 :(得分:0)
假设这是一个MVC Web应用程序。
请勿使用response.redirect()
改为使用
return RedirectToAction("YourMethodName", "YourControllerName");