如何为不同用户提供不同的登录页面?

时间:2012-02-13 09:47:34

标签: asp.net c#-4.0

我正在开发具有数据库的Web应用程序

             UserName|Password|UserType
             Anil|Anil|Manager
             ghouse|Ghouse|Admin
             raghu|raghu|User

现在我的任务是在登录时为每个用户提供他们自己的页面......他们都有相同的登录页面。

我尝试了这段代码,它对两个用户来说很好。如果我有两个以上的用户该怎么办?

         SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCareBankApp;Data Source=SSDEV7-HP\\SQLEXPRESS");
        string cmdStr = "select LoginType from Login where UserName='" + TxtUsername.Text + "' AND Password = '" + TxtPassword.Text + "'";
        SqlCommand cmd = new SqlCommand(cmdStr, con);
        con.Open();
        Object TypeUser = cmd.ExecuteScalar();
        con.Close();
        if (TypeUser != null)
        {
            LblError.Visible = false;
            LblError.Text = "";
            if (TypeUser.ToString() == "Manager")
                Response.Redirect("~/CallingAgents/CallingAgents_Login.aspx");
            else
                Response.Redirect("~/UserRegistrationForm.aspx");
        }
        else
        {
            LblError.Visible = true;
            LblError.Text = "Invalid Credentials Entered, Try again";
        }

5 个答案:

答案 0 :(得分:1)

我认为您应该创建一个公共类,在成功登录时插入您的用户类型。 在该公共类中将其重定向到相应的页面。

成功登录后:

 Response.Redirect(clsCommon.GetDefaultPage(userType));

你的commaon类代码:

 public static string GetDefaultPage(string userType){
        //Default Redirects
        Dictionary<string, string> userInfo = new Dictionary<string, string>(){
{"Manager","~/ManagerLogin.aspx"},                                  {"Admin","~/AdminLogin.aspx"},                         
                          {"User","~/UserLogin.aspx"}
                                 };
            return userInfo[roleName];
}

答案 1 :(得分:0)

如果您使用struts,则可以根据某些ID重定向到不同的页面。在行动中你可以实现这一目标。或者您可以从网址获取一些值并尝试重定向

答案 2 :(得分:0)

一种简单的方法是使用Login-control并为Authenticate事件和LoggedIn事件提供事件处理程序。但我认为你有必要查看asp.net会员系统的功能。

答案 3 :(得分:0)

我假设您没有使用Membership提供程序并手动创建登录功能。

我不完全理解这种自定义的目的。这对我来说毫无意义。但是有多种解决方案可供选择:

  • 将登录页面(aspx)转换为用户/自定义控件(ascx)并放入不同的页面 - 简单,快速但不完全透明更多信息{{3} }
  • 使用IIS URL-Rewrite引擎提供多个入口点(网址) 到同一个登录页面 - 清除,推荐 ,更多信息ScottGu

在第一个场景中,您需要检查UserType以获取用户提供的凭据,并将其与页面Url(aspx)对齐。在第二种情况下,您需要获取包含基本网址的Request.RawUrl并简化case

答案 4 :(得分:0)

利用会话。

要获得解决方法,您可以按照以下步骤操作:

+提供相同的登录页面 +询问用户名和密码 +使用下拉列表选择用户类型(即管理员或经理或用户)。

因此,根据下拉列表中的选择,您可以处理请求。

我希望这会有所帮助。