我正在开发具有数据库的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";
}
答案 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提供程序并手动创建登录功能。
我不完全理解这种自定义的目的。这对我来说毫无意义。但是有多种解决方案可供选择:
在第一个场景中,您需要检查UserType
以获取用户提供的凭据,并将其与页面Url(aspx)对齐。在第二种情况下,您需要获取包含基本网址的Request.RawUrl
并简化case
。
答案 4 :(得分:0)
利用会话。
要获得解决方法,您可以按照以下步骤操作:
+提供相同的登录页面 +询问用户名和密码 +使用下拉列表选择用户类型(即管理员或经理或用户)。
因此,根据下拉列表中的选择,您可以处理请求。
我希望这会有所帮助。